Php'de güvenlik
7
●671
- 21-02-2013, 17:50:39Kimlik 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. - 21-02-2013, 19:38:59sonuçta öyle veya böyle herkesin kendine göre bir güvenlik önlemi var. kimisi post'ları get'leri süzer kimisi katı kurallar uygular kimisi ip engeller kimisi başlı başına class yazar. bu soruyu sorma nedenim ""php'de nasıl güvenlik sağlanır değil" güvenlik için olmazsa olmazınız nelerdir diye fikir alışverişinde bulunmak
- 21-02-2013, 19:52:31Peki uzun uzun yazdım ama gerek yokmuş demek ki.orhanbyr adlı üyeden alıntı: mesajı görüntüle
Asla dışarıdan gelen veriye güvenmem. Tüm verileri doğrularım ve/veya süzerim. Bu benim olmazsa olmazlarımdan biri.
Güvenlik doğrulaması kullanırım. reCaptcha vs. - 22-02-2013, 17:08:04Üyeliği durdurulduDisaridan girilen yada degistirilen veriler tehlikesir.
Formun coklu gonderimi tehlikedir.
Upload kisimlari tehlikedir.
En onelmii dedicated dir. Bir site shell yerse tum verileriniz silinme calinma degisme tehlikesindedir ki bu sizin upload icin de gecerli - 22-02-2013, 23:26:26GET ile aldığım id'leri ctype_digit ile kontrol ettiririm.
Form verilerini mutlaka trim, addslashes ve htmlspecialchars ve empty kontrollerinden geçiririm.
Adığım veriyi direkt sql sorgusuna sokmam.
Özellikle yönetim panellerinde session korumasına dikkat ederim.
İletişim formlarında resim doğrulaması yaparım.
Upload sayfalarından dosya tür ve boyut kontrollerini gözden kaçırmam.