Kod yazmaya yeni başlayan arkadaşlar için gerekli olur düşüncesindeyim. SQL veritabanı bağlantısı bazıları için içinden çıkılmaz çok zor bir bulmacadır ki; sql injection koruması yapmak, mantığını bildiğiniz halde önlemini alamamak sinir edici bir durumdur. Genellikle yazılan kodlar
şeklinde olur ve dikkat ederseniz hiç bir sorgu kontrolü içermemektedir. Yukardaki kodlarınızın arasına birde kontrol durumu koyalım ve kodlarımızı
haline getirelim. Yukarıda da anlayacağınız gibi "'+,/*-+" işaretleri sorgulattığınız sayfada artık çalışmayacak. Kodlarınızdaki korumayı bu şekilde sağlayabilirsiniz. Tabi birde bu işin server tarafı var. Bunun içinde php.ini dosyasını kurcalamanızı öneririm
<?
// SORUNLU SQL KODU
include('conn.php');
$arama=$_GET['DOSYA_ADINIZ'];
$query=mysql_query("select * from dosya where adi='$arama'");
$sonuc=mysql_fetch_array($query);
echo $sonuc['adi'];
?>
şeklinde olur ve dikkat ederseniz hiç bir sorgu kontrolü içermemektedir. Yukardaki kodlarınızın arasına birde kontrol durumu koyalım ve kodlarımızı
<?
// SQL INJECTION TEMİZLENMİŞ HALİ
include('conn.php');
$arama=$_GET['DOSYA_ADINIZ'];
$temizlenecek=array("'+,/*-+")
$temizkod=str_replace($arama,$temizlenecek);
$query=mysql_query("select * from dosya where
adi='$temizkod'");
$sonuc=mysql_fetch_array($query);
echo $sonuc['adi'];
?>
haline getirelim. Yukarıda da anlayacağınız gibi "'+,/*-+" işaretleri sorgulattığınız sayfada artık çalışmayacak. Kodlarınızdaki korumayı bu şekilde sağlayabilirsiniz. Tabi birde bu işin server tarafı var. Bunun içinde php.ini dosyasını kurcalamanızı öneririm