htaccess ile Şifreli Sayfa ve Dizin Oluşturma

Sitenizdeki bazı dosyalara veya klasörlere erişimi sınırlandırmanız gerekebilir. Bunu yapmak için Session veya HTTP doğrulama gibi yöntemler mevcut. Biz bu işlemi .htaccess dosyası kullanarak yapacağız.

Öncelikle .htaccess nedir ve ne işe yarar sorularını cevaplandıralım:

.htaccess dosyası (hypertext access file), klasör(ler) düzeyinde Apache’nin ayarlanmasına izin veren, http sunucusu genel ayar dosyasını (httpd.conf) özelleştirebilen dosyadır. Dosya “.htaccess” olarak bilinir.

  • Sitenizin kaynaklarını tüketen, sitenizden veri çeken linkler (hotlink) engellenebilir.
  • Sitenizi ziyaret eden zararlı botlar engellenebilir.
  • Site üzerinde gizli klasörler oluşturulabilir.
  • Klasörlere erişim engellenebilir.
  • URL’deki bağlantı adresleri biçimlendirilebilir. Örnek: “makale.php” “makale.html” gibi düzenlemeler ve özelleştirmeler yapılabilir.
  • Veri sıkıştırma için kullanılabilir.
  • Dosya veya klasörlere şifre eklenebilir.
  • Hata sayfaları özelleştirilebilir.
  • Klasörleri listelemede kullanılabilir.
  • Yönlendirmelerde kullanılabilir.
  • Hangi dilin kullandığı saklanabilir.
  • Site için otomatik alt alan adları(subdomainler) oluşturulabilir.

Şifreli erişim yapılacak dizini belirledikten sonra, ilgili dizin içinde .htaccess adlı bir dosya oluşturalım. Bu dosyanın içine, aşağıdaki kodları yapıştıralım.

AuthName "Şifre Koruması"
AuthType Basic
AuthUserFile D:/WEB/xampp/htdocs/kontroller/.htpasswd
require valid-user

Üstteki kodlarda AuthUserFile yönergesinde belittiğim .htpasswd dosyası, şifrelemizi saklamak için kullandığımız dosyadır. Kullanıcı adı ve şifremizi .htpasswd dosyasına özel bir yöntemle şifreledikten sonra kaydetmemiz gerekiyor. Buraya tıklayın ve açılan sayfada Username kısmına kullanıcı adınızı, Password kısmına da parolanızı yazdıktan sonra Create .htpasswd file butonuna tıklayın. Ben kullanıcı adı admin ve şifre 1234 olarak girdim ve oluşturduğum şifre şu şekilde:

admin:$apr1$sCPZn/..$EUpwemgOYdbrcuAcXTBBI.

Bu şifreyi boş bir .htpasswd dosyası oluşturun ve içine kaydedin.

Şimdi ilgili dizinde herhangi bir dosyaya erişim yapmayı deneyelim.

htaccess-sifreli-sayfa

Resimde görüldüğü gibi kullanıcı adı ve parolası ile giriş yapmamızı isteyen bir pencere geldi. Yaptığımız bu sınırlandırma, ilgili dizindeki tüm dosyaları kapsamaktadır.

Belirli bir dosya için erişimi engellemeyi öğrenelim. Kodlarımız şu şekilde:

<Files ozel.html>
AuthName "Şifre Koruması"
AuthType Basic
AuthUserFile D:/WEB/xampp/htdocs/kontroller/.htpasswd
require valid-user
</Files>

Files yönergesindeki ozel.html, erişimi sınırlandıracağımız dosyanın adı. Bu kodlar sadece ilgili dosya için erişimi şifreli yapacaktır, diğer dosyalara erişim şifresiz olarak sağlanır.

Örnek .htaccess ve .htpasswd dosyalarına http://www.celalyurtcu.com/dosyalar/ornek-htaccess-htpasswd.zip adresinden ulaşabilirsiniz.

 12.195 defa okundu

17 Yorum

  1. teşekkürler yararlı bi makale olmuş. şifreleme işlemini yaptım ancak şifre doğrulaması yapıp giremiyorum dizine neden olabilir acaba

  2. Gzl Makale olmuş bir sorum olacak acaba bu htpasswd dosyasını kullandıgımızda popup olarak gelmekte ıd şifre yeri onu kendi tasarladımıgz html ve html5 giriş sayfasına baglama şansımız varmı?

  3. celal hocam selamlar,
    (domain.com/giris.php?pass=12345) get pass ile her sayfa için anlık (her sayfada değişen) şifre üretme konusunda nasıl bir yol izlemem gerekiyor. bu konuyla ilgili metodlar hakkında bilgi verebilirmisiniz.

    Saygılarımla.

  4. Bir internet sitesinde daha önce bu tarz birşey görmüştüm, premium üyelik satan bir site eğer paket alırsanız gizli, şifrelenmiş klasörlere erişebiliyorsunuz. Tabi size kullanıcı bilgileride veriyorlar, bunun htaccess ile yapıldığını az çok biliyordum ama makaleyi okuyunca daha iyi anladım işin mantığını teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir