Güvenli Web Siteleri Yapmak İçin Nelere Dikkat Etmeliyiz
Yaptığınız web sitelerinin saldırganlar tarafından sürekli rahatsız edildiğini düşünene herkes bu yazıyı mutlaka okumalı. Güvenli web siteleri nasıl yaparız.
Ne tür güvenlik önlemleri alabiliriz? Şeklindeki soruların kısa kısa cevaplarını bulabilirsiniz. Faydalı olması dileğiyle
SORUN: SQL Injection ve Cross site scripting açıkları
ÇÖZÜM: Web sitelerine saldıranların en çoğu bu yöntemi kullanarak web sitelerinize saldırılar. Aslında kod yazarken sorgularınızı injection açıklarına karşı korumalı olarak yazarsanız, web istelerinize saldırı yapanların bir çoğundan kurtulmuş olursunuz. Bunun çözümü için hangi dili kullanırsanız kullanın çeşitli hazır fonksiyonlar sayesinde sorguya göndereceğiniz parametreleri ‘, \, union, gibi parametrelerden arındırmalısınız. Yada kendiniz bir fonksiyon yazıp bu gibi kararterler gördüğünüzde hata verdirerek saldırı olduğunu anlayabilirsiniz ve engelleyebilirsiniz.
SORUN: Üye giriş ve yönetim paneli şifreleri nasıl güvenli yapılabilir.
ÇÖZÜM: Eğer sitenize bir yönetim paneli yaptıysanız, yada üye giriş formunuz varsa buralara giriş için şifrenizi mutlaka büyük küçük harf duyarlı olarak kontrol yaptırınız (Büyük küçük harf duyarlı şifre kontrolü)ayrıca rakam ve harfleri birlikte kullanınız. Böylece Brute Force (kaba kuvvet) ataklarına karşı daha güvenli olursunuz. Ayrıca sisteminizin kaba kuvvet ataklarına karşı yavaşlamammasını istiyorsanız mutlaka şifrelere hata sayısı limiti koyunuz. Böylelikle bir kullanıcı örn: 10 hata yaptıysa banlayınız. Yada CAPTCHA (Güvenlik kodu) kullanınız
SORUN: Çerezler dışarıdan bir kullanıcı tarafından okunabiliyor. HTTPONLY olabilir mi?
ÇÖZÜM: Web sitenizde çerezleri(cokie) kullanıyorsanız web config ayarlarınızdan çerezleri HttpOnly yaparak dışardan bir kullanıcının okumasını engelleyebilirsiniz.
SORUN: Şifre alanlarının otomatik tamamlama özelliği kaldırılmalımıdır?
ÇÖZÜM: Eğer sitenizin kullanıcılarının şifre hatırlatılmasını istemeyebilirsini. Böylelikle tarayıcıyı kapattıktan sonra şifrenin ele geçmesi mümkün olmayacaktır. Bunu engellemek için şifre kontrolü yapan textbox ımıa aşağıdaki gibi bir özellik ekleyerek otomatik tamamlama özelliğini kaldırmış oluruz
<input type=”text” autocomplate=”off” name=”pass”>
SORUN: robot.txt dosyaları güvenlik açığına sebep olabilir mi?
ÇÖZÜM: Arama motorlarının neyi indexleyip neyi indexlemeyeceğini belirttiğimiz robot.txt dosyaları aynı zamanda sunucunuzdaki göstermek istemediğiniz klasör listesini kullanıcılara rahatlıkla gösterebilir. Örneğin yönetim paneli girişimiz admin/index.php olsun admin kalsörünü göstermek istemeyebiliriz. Bunun için robot.txt dosyalarından bu isimleri kaldırmalıyız. Eğer illaki yapmamız gerekiyorsa başka yollar deneyerek yapmalıyız.
SORUN: Kullanıcı girişlerindeki hatalı girişlerdeki uyarı mesajları nasıl olmalıdır?
ÇÖZÜM: Hatalı girişlerdeki hata mesajları açıklayıcı olmamalıdır. Örneğin şifreniz en az 6 karakter olmalıdır gibi bir tabir saldırganı yönlendirecektir. Bunun yerine standart bir hata mesajı daha doğru olur. Böylece saldırganın yolunu biraz daha dolandırmış oluruz.
SORUN: 404, 403… gibi hata sayfaları güvenlik açıklarına sebep olabilir mi?
ÇÖZÜM: Bu hata sayfalarının bir anlamı vardır. Örneğin 403 hatası genellikle burada aradığınız dosya yada klasör var fakat erişim izniniz yok demektir. Saldırgan bunu anladıktan sonra artık erişmenin yollarını arayacaktır. Aradığının olup olmadığını öğrenmiştir çünkü. Bu gibi durumlarda da kendimizin belirlediği genel bir hata sayfasına bu hataları yönedirirsek saldırganı biraz daha uğraştırmış oluruz.
SORUN: Yönetim paneli girişlerini nasıl güvenli yapabiliriz?
ÇÖZÜM: Bunun için en basit yöntem olarak yönetim panelinizdeki sayfanın başına belirlediğiniz ip nin dışındaki kullanıcıların erişimini yasaklarsanız herkesin yönetim paneli giriş ekranına ulaşmasını engellemiş olursunuz.
Bildiğim kadarıyla bu zamana kadar karşılaştığım ya da müşterilerin talep ettiği güvenlik açıklarıyla ilgili bilgilerimi aktarmaya çalıştık.