PHP güvenlik tavsiyeleri

PHP de en büyük sıkıntı yaratacak açıklardan biri sql-injection açığıdır.

Sql injection açığını çözmek için mysql de yapılan işlemlerde kullanıcıdan gelen değişkenler her zaman

$safe_variable = mysql_real_escape_string($unsafe_variable);

şeklinde mysql_real_escape_string komutuyla arındırılmalıdır.Mysqli’de ki karşılığı

$safe_variable = mysqli_real_escape_string($unsafe_variable);

Yada sql injection önlemek için mysqli nin Prepered Statements tipindeki veri girişi kullanılabilir.

Aşağıdaki örnekte string girişi yapılacağından bind param “s” kullanılmıştır daha detaylı bilgi için Prepered Statements ile ilgili araştırma yapınız.

 $stmt = $mysqli->prepare("INSERT INTO table (column) VALUES (?)");

    $stmt->bind_param("s", $unsafe_variable);

    $stmt->execute();

    $stmt->close();

    $mysqli->close();

Yine veritabanına kaydedilen verilerin uzunluğu stunun maksimum karakter sayısını aşıyor mu kontrol edilmelidir.

Diğer dikkat edilmesi gereken güvenlik önlemleri ise önemli ve bot ile kötü kullanıma müsait web sayfalarına captcha ile korunmalıdır.

Kullanıcının şifre gibi önemli bilgilerinin alınıp gönderildiği web sayfalarını ise SSL Sertifikası ile şifrelemek yapılacak diğer bir önlemdir

Yine önemli formlar csrf token ile bot kullanımından ve F5 yapılmasından korunmalıdır.

Formlar referer kontrolü ile de kısmen koruma altına alınabilir.

Html formlarda mümkün olduğunca get yerine post metodu tercih edilmelidir.

Mysql de oluşacak bir hata sitenizde sıkıntı yaratabilir hata oluştuğunda anlayıp çözebilmek için hata varsa hata ekrana yazdırılmalı ve mysql sorgusunda gerekli bir değişken varsa değişken var mı diye öncesinde kontrol edilmelidir.

Bir cevap yazın