.htaccess konuları [Parola korumalı dizinler ve dosyalar]
.htaccess dosyalarının belki de en çok ihtiyaç duyulan kullanım alanıdır parola korumalı dizinler oluşturma işlemi. “Eski moda” gibi dursa da, hala web geliştiricilerin bazen işine yaramakta ve ihtiyaç duyulmaktadır.
.htaccess dosyası ile bir dizini parola korumalı yapma işleminin iki aşaması vardır.
- korumak istediğimiz dizine bir .htaccess dosyası yerleştiririz.
- Dizini görüntülemek isteyenlerin girmek zorunda olduğu “kullanıcı ismi” ve “parola” nın yer aldığı bir dosya oluştururuz. Bu dosyanın adı .htpasswd dir.

Bu işlem ile koruduğumuz dizinlere kullanıcı erişmek istediğinde pop-up olarak açılan pencere kullanıcı adı ve parola girmesini isteyecek, yetkilendirme gerçekleşmezse 403 hata sayfasını karşısına çıkaracak.
Birinci aşama: .htaccess dosyası
Birinci aşamada .htaccess dosyamızı oluşturalım. İçeriği şu şekilde olacak:
AuthName "Lutfen kullanici adi ve parolanizi giriniz:" AuthUserFile /guvenlidizin/.htpasswd AuthType Basic require valid-user
Bu dosyanın içeriğini şu şekilde açıklayabiliriz: İlk satırda kullanıcının karşısına çıkan pop-up pencerenin kullanıcıya mesajını yazıyoruz, ikinci satırda .htpasswd dosyasının hangi dizinde bulunduğunu belirtiyoruz, korumak istediğimiz dizinin içerisinde olmasına gerek yok, hatta o dizinin içerisinde olmamalı. .htpasswd dosyasının bulunması gereken yer, /www dizinin üzeridir, burada olması daha güvenlidir. 3. satırda yetkilendirme işleminin tipini, 4. satırda ise hangi açıdan yetkilendirme yapacağını belirtiyoruz.
İkinci aşama: .htpasswd dosyası
Bu aşamada oluşturacağımız .htpasswd dosyasının içeriği şu şekilde olacak:
isa:oYBf88gdB5f5o isa2:JyVzUTcfnc.WQ
Bu dosyanın içeriğinde ise kullanıcı adı ve parolası yer alıyor: kullanıcı:parola. Her satırda bir kullanıcı yer almakta. Dolayısıyla bizim işlemimizde tanımlı olan 2 kişi var, isa ve isa2. yalnızca bu kişiler giriş yapabilecek.
Peki parolalar biraz garip değil mi? Evet, garip, çünkü bunlar şifrelenmiş hali. Unix-Linux sistemlerde .htpasswd dosyasına parolanızı şifrelenmiş olarak yazmak zorundasınız. Örneğin yukarıda isa2 kullanıcısının parolası isa2 ancak şifrelenmiş hali ise JyVzUTcfnc.WQ.
Önemli Noktalar
Öncelikle şunu belirmekte fayda var, .htpasswd dosyasını, herkesin erişebileceği bir dizine koymamalısınız, sitenizin ana dizinin üstünde yeralmalı. (www ya da public_html diziniin içerisinde yeralmamalı.) Eğer siteniz linux sunucuda /home/site/ dizininde yer alıyorsa ve sitenizin www klasörü /home/site/www/ şeklinde ise, .htpasswd dosyası /home/site/.htpasswd şeklinde yerleştirilmeli.
.htaccess dosyasında require valid-user nasıl yetkilendirme yapacağını yazdık, burada, .htpasswd dosyasında adı bulunan tüm kullanıcılar, doğru parolayı girdiklerinde, ilgili dizini görüntülemek için yetkilendirilmiş olacaklar. .htpasswd dosyasında yer alan kullancılardan sadece isa’nın giriş yapabilmesini isteseydik, “require user isa” şekilnde yazacaktık kodumuzu.
.htpasswd dosyasında parolamızı nasıl şifreleyeceğiz? Bunun için internette pek çok araç bulunmakta, bazıları: http://www.4webhelp.net/us/password.php , http://www.euronet.nl/~arnow/htpasswd/ , http://www.sherylcanter.com/encrypt.php veya http://css.psu.edu/publish/htpasswd/htpasswd.html adreslerindeki araçlar kullanılabilir.
Sadece belirli dosyaları korumak
Şu ana kadar oluşturduğumuz .htaccess dosyası ile bütün dizine erişim için yetkilendirme gerçekleştirilmesini istedik, ancak sadece belirli dosyalara erişimi de kısıtlayabiliriz. Bu durumda kullanıcılar dizinde gezebilecekler ve sadece bizim belirlediğimiz dosyaları görmek istediklerinde yetkilendirme pop-up penceresi açılacak.
Bu durumda kullanacağımız kod aşağıdaki gibi olacak:
AuthName "Lutfen kullanici adi ve parolanizi giriniz:" AuthUserFile /guvenlidizin/.htpasswd AuthType Basic <files dosya1> require valid-user </files> <files dosya2> require valid-user </files> <files dosya3> require valid-user </files>
Sonuç
.htaccess dosyaları ile dosya ve dizinleri koruma işlemi bu şekilde gerçekleşmekte, siz de dosya veya dizinleri parola korumalı yapmak istediğinizde hızlı şekilde bu methodu kullanarak işlemi gerçekleştirebilirsiniz.
bir sonraki .htaccess yazısında görüşmek üzere!
Bütün .htaccess Yazıları
– .htaccess konuları [Giriş]
– .htaccess konuları [Hataları Yönlendirme]
– .htaccess konuları [IP Engelleme]
– .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme]
– .htaccess konuları [Parola korumalı dizinler ve dosyalar]
– .htaccess konuları [Yönlendirme]
– .htaccess konuları [Dinamik bağlandı (hotlink) engelleme]
– .htaccess konuları [kötü örümcekleri engelleme]
– .htaccess konuları [İşaretçi siteye göre engelleme]
– .htaccess konuları [Kapanış]
- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!
.htaccess konuları [Parola korumalı dizinler ve dosyalar] yazısına 5 Yorum yapılmış.
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (23)
- PHP ile sınırsız alt kategori mantığı (23)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de “join” kullanımı (17)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- Kullanıcı dostu url hazırlamak (14)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- Kullanıcı dostu URL oluşturma (2. teknik) (11)
- .htaccess konuları [Giriş] (11)
Etiketler
Son Yorumlar
- Murat: Güzel bir teknik, şu ana kadar sınırsız alt kategori lazım olmadı ama olmayacağı anlamına gelmiyor
- iilyas: Bu kodlar çalışmıyor arkadaşım. Localde olduğu içinmi acaba ?
- iilyas: Arkadaşım çok teşekkür ediyorum. Harika anlatmışsın ajaxla çalışmalara başlamak lazım estetik açısından.....
- Nuri: bende bu şekilde bir çalışma yaptım ancak bir sorunum var ne yaptıysam url den index.php bölümünü kaldıramadım....
- Kemal: Makale için çok teşekkürler, resimleri div tagları ile yapabilirmiyiz. Bu arada imagelara link verirsek daha...
27 / Aralık / 2008
[...] [IP Engelleme] – .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme] – .htaccess konuları [Parola korumalı dizinler ve dosyalar] – .htaccess konuları [Yönlendirme] – .htaccess konuları [Dinamik bağlandı (hotlink) engelleme] [...]
[...] [IP Engelleme] – .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme] – .htaccess konuları [Parola korumalı dizinler ve dosyalar] – .htaccess konuları [Yönlendirme] – .htaccess konuları [Dinamik bağlandı (hotlink) engelleme] [...]
[...] [IP Engelleme] – .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme] – .htaccess konuları [Parola korumalı dizinler ve dosyalar] – .htaccess konuları [Yönlendirme] – .htaccess konuları [Dinamik bağlandı (hotlink) engelleme] [...]
[...] [IP Engelleme] – .htaccess konuları [Dizinlerin varsayılan dosyalarını değiştirme] – .htaccess konuları [Parola korumalı dizinler ve dosyalar] – .htaccess konuları [Yönlendirme] – .htaccess konuları [Dinamik bağlandı (hotlink) engelleme] [...]
keşke bir kısa videoyla örnek uygulama yapsaymışsın. Çok daha anlaşılır olurdu. En azından kendi adıma bunu çok istiyorum.