Cevaplar
-
Biraz daha açık yazarsan iyi olur. Diğer türlü sana cevap vermemiz zor.
-
Yazılan kodların, kullanıcı tarafından gönderilen yerlerdeki sorgularını tamamen kontrol etmelisin. Injection işlemine karşı korumalı bir şekilde kod yazmalısın. .net kullanıyorsan sql parameters ile birlikte kullanabilirsin sorgularını. Böylece daha güvenli olur
comm = new SqlCommand("SELECT ad,soyad FROM uyeler WHERE ad= @ad",conn); comm.Parameters.AddWithValue("@ad", "safak");
Biraz daha detaylı arama yaparak sql parameters kullanımı hakkında bilgiler edinebilirsin. -
Get verisi kullanıyorsan oradan saldırmış olabilir. doğrudan veritabanına header yönlendirmesi ile sql injection yapmışlardır. get ile aldığın verileri mysql_real_escape_string ile ya da aşağıda ki gibi daha komplike bir fonksiyon ile korumaya alman lazım. Aşağıda yazılan str_replace yani sitring değiştirme işlemlerini select yazısı or 1=1 yazısı gibi yazılar ilede çoğaltabilirsin.
$veri = w($_GET['haber']); if (!function_exists("w")) { function w($q) { $q = str_replace("`","",$q); $q = str_replace("<script","",$q); $q = str_replace("<?php","",$q); $q = str_replace("?>","",$q); $q = str_replace("include","",$q); $q=trim($q); return $q; } }