Mango
04-06-2021 Saat 17:07
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.