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