22 Şubat 2013 Cuma

Sitenizin Admin Paneline Kullanıcı Adı ve Şifre Kontrolünü Bırakın .htaccess Yapsın

Eminim bir çoğumuzun kişisel websayfası  ya da yalnız yürüttüğü web projeleri vardır.Hani sadece bizim girip birşeyleri değiştirdiğimiz o siteler...

Sadece benim , girdiğim benim değişiklik yaptığım bir site için özel bir login ekranı yaratıp buradan kullanıcı adı ve bilgilerini istemek daha sonra bu bilgilerin olabilecek bir brute-force atağına karşı belirli bir defadan fazla denenmesine izin vermemek gibi uzun işlemler ve kodlama gerektiren bir süreci sade ve sadece kendim için yapmak bana çok büyük bir vakit kaybı gibi geliyor.

Bunun yanında web geliştirmeye yeni başlayanlar , bilimum web açıklarından bihaber olan junior yazılımcıları düşününce sitenin en önemli alanın korunması daha bir komplike hal alabiliyor.

Uzun zamandır web geliştirmeyle uğraşan bir insan olarak tamamen güvenli diyebileceğim bir yöntemi sizinle paylaşmak istiyorum.

Apache web sunucusunun biz web geliştiricilere sunduğu bir nimet olan .htaccess !





Peki bu işlem tam olarak ne yapacak ve neden güvenli.

Yapacağımız işlem aslında çok basit admin klasörümüze sadece bizim ulaşmamız gerektiğine göre bu klasörü öncelikle dışarıdan gelen bütün bağlantılara kapatıyoruz.Daha sonra her ihtimale karşı bu klasöre giriş için .htaccess modülünü kullanarak bir kullanıcı adı ve şifre soruyoruz.

hadi yapalım.

öncelikle admin klasörümüze .htaccess adında bir dosya oluşturalım.ve içerisine şunları yazalım


AuthName "Sadece Admin girişi mümkündür
AuthType Basic
AuthUserFile /WebServerklasörünüzdışında bir klasör/ .htpasswd
require valid-user
<Limit
GET POST> order deny,allow deny from all allow from Bilgisayarınızın Statik Ip Adresi allow from 127.0.0.1 </Limit>



AuthUserFile kısmına webserver'ın yüklü olduğu klasörün dışını göstermemizin sebebi dosyayı internete sunulmaması.

alt kısımda da yaptığımız sadece localhost ip'miz olan 127.0.0.1 ve statik bilgisayar ip'miz dışında girişleri engellemek.Aslında bu kısıma hiç gerek yok ama ben bulunmasını tercih ediyorum.Statik ip adresinizi google'a  "what's my ip" yazarak öğrenebilirsiniz.

Daha sonra yapmamız gereken httpd.conf dosyası altından her klasöre özgü .htaccess özelliklerini açmak bunu yapmak için de httpd.conf dosyamızı buluyoruz.ve AllowOverRide sözcüklerini aratıyor ve default değeri All yapıyoruz.
Bu dosya her işletim sisteminde farklı yerlerde bulunduğundan özel bir adres vermiyorum minik bir internet araştırması ile yeri bulunabilir.



daha sonrasında AuthUserFile için tanımladığımız lokasyona gidiyor ve terminal ekranında

 htpasswd -c .htpasswd kullanıcıadı 

yazıyor. Entera basıyoruz daha sonra da şifremizi iki defa girdiğimizde dosyamız oluşmuş oluyor.Dosyanın içerisine bakarsanız kullanıcı adınızı ve kriptolanmış şifrenizi görebilirsiniz.

Herşeyi doğru yaptığımız taktirde http://localhost/admin adresine giriş yapmaya çalıştığınızda
size kullanıcı ve şifre soracak.

Ayrıca siteye kendi ip'niz ve local bağlantı hariç diğer tüm girişler de engellenmiş olacak local network'unuzdeki diğer bilgisayarlar da buna dahil...



Kolay Gelsin.







Hiç yorum yok:

Yorum Gönder