Kimlik doğrulama veya yönetimden onay bekliyor.
Kardeşim bu soru o kadar çok soruldu, o kadar çok cevaplandı ki inan tek tek yazmaya üşeniyorum.
Ancak üşengeçliğimi yendiğim kadarıyla temel şeyleri yazmaya çalışayım.
Bence öncelikli ve en temel durum şu. Ziyaretçiden, kullanıcıdan, üyelerden kısacası dışarıdan form vs ile girilen hiçbir veriye güvenmeyeceksin. Dolayısı ile ziyaretçilerine, kullanıcılarına ve üyelerine kesinlikle güvenmeyeceksin.
Süzme, doğrulama işlemlerini uygulamadan, dışarıdan gelen verileri kesinlikle veritabanı sorgusuna dönüştürmeyeceksin. Veritabanı sorgusuna sokmayacaksın. Bu genel olarak SQL Injection olarak bilinir.
Mümkün olduğunca sorunları log edeceksin yani kayıt tutacaksın. Birisi SQL Injection gibi bir şey denediği zaman şu IP numarası şu üye şu saatte bunu denedi diye kaydını tutacak ve işlem yaptıracaksın.
Çok değerli verileri, şifre kullanıcı adı gibi şeyleri şifreleyeceksin. md5 olur, sha1 olur. Kendi yazdığın şifreleme algoritması olur. Farketmez. Formların tekrar tekrar gönderilmesini engellemek için ReCaptcha uygulamasını kullanabilir.
Temel aşamada güvenlik sorunları genelde POST ve GET işlemlerinin kontrolü ile sağlanabilir. Yani form verileri ve adres çubuğunda gelen ?id= verilerini süzerek.
Özel olarak sormak istediğin bir durum olursa ona bakalım.