VeriTabanı na sorgu göndermeden önce stringleri mutlaka tehlikeli karakterlerden kurtarmalıyız phpdekurtama karakter ( \ ) dır. Farklı fonksiyonlarla kurtama karakterini stringlere uygulayabiliriz. Bunların en basiti addslashes() fonksiyonıdır. Bakalım tehlikeli karakterlerden kurtarmaksa neler mi olur? Bakalım. Diyelimki bir update sorgumuz var ve bize kullanıcı adımızı değiştirmek istiyoruz.
UPDATE kullanici SET isim='$isim' WHERE ID=1;
Uygulanan fonksiyon bu şekilde fakat isim değişkeninin içeriğini kotrol etmedik diyelim. Kullanıcımız $isim değişkenini formdan okan olarak gönderirse;
UPDATE kullanici SET isim='okan' WHERE ID=1;
sorgusu gider ismimiz okan olarak değişir hiçbir problem yok. Ya kullanıcımız niyeti bozupta $isim değişkenini
okan',Admin='1
olarak gönderdi diğelim bakın neler oluyor.
UPDATE kullanici SET isim='okan',Admin='1' WHERE ID=1;
Eğer bu sorgu giderse kullanıcımız bir site yöneticisi durumuna gelmiştir. Eğer $isim değişkenini
$isim=addslashes($isim); fonksiyonundan geçirirsek sorgumuz
UPDATE kullanici SET isim='okan\',Admin=\'1' WHERE ID=1;
haline gelecektir ve ( \ ) karakteri sayesinde \ dan sonra gelen tek tırnak karakterleri yok olur ve $isim değişkenimiz 'okan , Admin=1' olacaktır ve dolayısla sorgu çalışmayacaktır.
Bir kontrol örneği vermek gerekirse

Bu kodu sadece üyeler görüntüleyebilir! Üye olmak için
tıklayın Üye iseniz
giriş yapın.
şeklinde saldırlardan bir nebze korunabilirsiniz. get_magic_quotes_gpc() fonksiyonundan iki değer döner eğer server otomatik olarak formdan gönderilen değişkenlere ( \ ) ekliyorsa true değeri dönereğer eklemiyorsa false teğeri döner bizde buna göre ( \ ) ekliyoruz.
addsalshes() fonksiyonu ile ekledimiz ( \ ) leri. stripslashes() fonksiyonu ilede kaldırabiliriz.
addsalshes() fonksiyonuna alternatif olarak mysql_real_escape_string() fonksiyonunuda kullanabiliriz. PHP 4.3.0 dan sonra kullanılmaya başlamıştır. Aynu şekilde sprintf() fonksiyonuyla sorgularda değişken tiplerinide kontrol edebiliriz. Örnek bir kullanım inceleyelim.

Bu kodu sadece üyeler görüntüleyebilir! Üye olmak için
tıklayın Üye iseniz
giriş yapın.
Bu kullanımda hem $isim değişkenini mysql özel karakterlerinden kurtarıyoruz hemde bir string olup olmadığını kontrol ediyoruz.