Sql açığını kapatmak için mysqlden gelen ve MySQL'e giden bilgileri zararlı kodlardan temizlemek gerekir. Bu zaman program verileri kod olarak değil metin olarak okuyacak.
Bu iş için PHP dilinde mysql_real_escape_string( pdo = quote() ),intval,htmlspecialchars,trim (boşluğu gidermek için)özellikler mevcuttur
örnek: $a=$_GET['id']; Bu değişkeni şöyle yazmak gerekir. $a=htmlspecialchars(trim($_GET['id']));
NOT: bundan başka where id=".$i." gibi sorguları where id='".$id."' gibi yazmak daha uygundur Bunu yaptıktan sonra değişken stringe dönüşecek ve mysql için hiçbir tehlike yaratmayacaktır Eğer sizin değişken sadece rakamlar olacaksa $a=intval($_GET['id']); yazmak yeterlidir yukarıdaki kodu her değişkende edince uzun olabilir buna göre fonksiyon yazalım
//mysql sorğusudursa function antisql ($antihucum){
return htmlspecialchars(trim(mysql_real_escape_string($antihucum)));
} //mysql sorgusu değilse function antimethod($antihucum){
return htmlspecialchars(trim(strip_tags($antihucum)));
}
bu zaman sadece $a=antisql($a); kaydetmemiz yeterlidir kodu deneyelim
Bu iş için PHP dilinde mysql_real_escape_string( pdo = quote() ),intval,htmlspecialchars,trim (boşluğu gidermek için)özellikler mevcuttur
örnek: $a=$_GET['id']; Bu değişkeni şöyle yazmak gerekir. $a=htmlspecialchars(trim($_GET['id']));
NOT: bundan başka where id=".$i." gibi sorguları where id='".$id."' gibi yazmak daha uygundur Bunu yaptıktan sonra değişken stringe dönüşecek ve mysql için hiçbir tehlike yaratmayacaktır Eğer sizin değişken sadece rakamlar olacaksa $a=intval($_GET['id']); yazmak yeterlidir yukarıdaki kodu her değişkende edince uzun olabilir buna göre fonksiyon yazalım
//mysql sorğusudursa function antisql ($antihucum){
return htmlspecialchars(trim(mysql_real_escape_string($antihucum)));
} //mysql sorgusu değilse function antimethod($antihucum){
return htmlspecialchars(trim(strip_tags($antihucum)));
}
bu zaman sadece $a=antisql($a); kaydetmemiz yeterlidir kodu deneyelim