Beyaz.Net İpucu

Sql Injection Nedir?

Sql injection özet olarak querystringler ile sorgulara müdahalede bulunup veritabanına erişerek veritabanındaki bilgileri görüntülemek şeklinde açıklanabilir.

Bir kullanıcı giriş formunda kullanıcı ve şifrenin doğruluğunu şu şekilde kontrol ederiz:

select * from users where uname='”uname”' and pass='”pass”'

Biz eğer sql injeciton kontrolü yapmadıysak username ve pass alanına ' OR '1'='1 sql sorgusunu şu hale getirilerek yani %100 doğru olarak kabul ettirerek kolayca sistemdeki kullanıcı adı ve şifre bilgileri çalınabilir.

select * from users where username='”uname'OR'1'='1”' and pass='”pass'OR'1'='1”'

Bu sorguda her 2 taraftada 1=1 olduğundan ve and koşulu sağlandığından tüm kullanıcı adı ve şifreler sorgu sonucu olarak çıkmaktadır.

Sql injecitondan kontrolünün php dilindeki en temel yöntemi mysql_real_escape_string fonksiyonudur.

Bu fonksiyon gelen değerden escape karakterleri (',/ vb.) temizleyerek web sitesini temel düzeyde sql injectionlara karşı korur.  

Kategorideki Güncel Makaleler