php Warning: mysql_real_escape_string hatası

merhabalar… yeni yapmaya çalıştığım oturum kontrol sistemim localde gayet güzel çalışırken sunucuma attığımda hata vermişti.

Komut:
$kullaniciadi = strip_tags(mysql_real_escape_string($_POST[‘kullaniciadi’]));

Hata mesajı da:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@’localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 56

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 56

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@’localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 57

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 57

Çözüm :
mysql_real_escape_string() komutunu mysql bağlantısı yapmadan kullanmaya çalışmışım. mysql bağlantı komutlarımı bu satırların öncesine çekince bir sorun kalmadı.

mysql_real_escape_string() nedir?

Bizi sql saldırılarından korumaya yarayan bir komuttur. Örneğin kullanıcı adı şifre sorgulayacağımız yerde aşağıdaki gibi bir sorgu kullanırız:

select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’

Şimdi adamın biri gelip kullancı adı ve şifreye rastgele bişiler yazdıktan sonra
or ‘1=1′ yazarsa ne olur ? bakalım:

select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’ or ‘1=1’

Sonuç 1 – 1 eşit olduğuna göre kullanıcı adı ve şifreyi bilmeye gerek kalmadan şifre atlanmış olur.

Yazar: Mustafa Şadoğlu

Mustafa sitemizde 109 yazı eklemiş...

Share