Forum
merhaba,
SQL Injection saldırıları ile neredeyse
herkesin başı dertte. büyük sistemler SQL Injection ile çok kolay hacklenebilmektedirler. bende bir nebzede olsa kabak gibi duran
SQL Injection saldırısını önlemeyi anlatacağim.
Örnek olarak bir sorgu alalım ben projelerimde kullandıgım değerlerden örnek vereceğim.
$_POST'a gelen değerler çok önemlidir çünki mysqldeki değerler ile karşilaştirilacaktir..
$sifre=$_POST['sifre']);
$sifre=mysql_query("select * from yonetici where `id`='$sifre'");
mysql_num_rows($kontrolet)
Böyle birşey kullanmak tamamen bir hatadır çünki SQL Injection yapacak arkadaşin ` işareti olusturmasina gerek
bırakmadiniz. böylece SQL ınjection saldırıları ile USER ve PASSWORD
bilgileriniz SQLden çekilebilir bunu önlemek ise basittir.
$sifre=$_POST['sifre']);
$sifre=mysql_query("select * from yonetici where id='$sifre'");
mysql_num_rows($kontrolet)
böyle yapildiği taktirde SQL açiği oluşması için `gerekliliğini
belirttik..` önlemek için $_POST a bunları yapmak yeterli olacaktir.
$sifre=mysql_real_escape_string(htmlspecialchars($_POST['sifre']));
$sifre=mysql_query("select * from yonetici where id='$sifre'");
mysql_num_rows($kontrolet)
mysql_query de id sifre karşilaştirmasini böyle yaparsak arkadaşın ` işareti olusturması kosulunu koyarız. daha sonra mysql_real_escape_string fonksiyonu kullandiğimiz için arkadaş ne zaman ` oluşturmaya kalksa hata ile karsılasacaktir.
saygılar.
bilgi için teşekkürler
bilgi için teşekkürler
işinize yaradıysa ne mutlu bana.
Hocam buakdar kasmaya gerek yok gibime geliyor empty string ve en fazla deneme değeri ile bu iş daha kolay çözülür.
Hocam buakdar kasmaya gerek yok gibime geliyor empty string ve en fazla deneme değeri ile bu iş daha kolay çözülür.
benim gibi paranoyak güvenlikçiler için string yeterli olmuyor hocam. 🙂