PHP'DE Sql Açık Kapatma. (1 Viewer)

K

kr4l

Merhaba Arkadaşlar

Php de büyük bir sorun olan SQL İnjection açığından korunmanın yolunu anlatacağım bunun birçok yolu var ancak aralarından en güvenlisini anlatacağım Başta SQL İnjection açığının tehlikesi nedir bu açık ile neler yapılabilir bunu anlatayım SQL Açığında gelen sorgu verisinin filtrelenmediği taktirde, oluşan kod açığında kullanılan SQL kodlarını yazarak web sitenizin tablo ve kolanlarınızdaki bilgilere ulaşılabiliyor.



$id=$_GET[“id”]; / “ id “ ile veri çekilir .

$sorgu = mysql_query(“SELECT * FROM user where ID=’$id’”); / Direk Sorguya Yansıtılır.

Burada ;
Gelen id verisini 1 ise örneğin id=1’a yaptığımızda
$sorgu =mysql_query(“SELECT * FROM user where ID=’1’a’”); Olacaktır ve sorguda hata oluşacaktır buda sorguda istediğimiz sorguyu çalıştırabileceğimiz anlamına gelebilir id=1 order by 100 gibi.


Bu tür sorgular oldukça tehlikelidir, kişisel bilgilerinizi, şifrelerinizi vs. gibi şeyleri çekebilir
Şimdi gelelim bu kadar tehlikeli büyük bir açığın nasıl çok kolay bir şekilde kapatacağımıza ;

Bir önce filtresiz sorgumuzda $id verisini hiçbir şekilde filtrelemeden geçirmeden sorguda kullanmıştık. Şimdi ise “mysql_real_escape_string” fonksiyonu ile engelleyeceğiz.

$id=$_GET[“id”] / id İle veri çekilir.
$id = mysql_real_escape_string($id); / id “mysql_real_escape_string” ile filtrelemeden geçirilir burada id değişkeninin son hali kullanılır. Sorguda ise ‘,’a gibi hata alma karakterlerimiz işlemeyeceği için sorguda hiçbir şekilde kod çalıştırılmayacaktır.

Sorguda kod çalıştırılmayınca sistemden olağanüstü veri çekilemeyecektir.
 

Users who are viewing this thread

Top