SQL Injection’dan Korunma(www.sechunterz.pw)
PDO’nun en sevdiğim yanı diyebilirim hemen örnek bir saldırı senaryosu oluşturalım.
MYSQL
$connect = mysql_connect("localhost","root","root");
mysql_select_db("portal",$connect);
$sql= "SELECT * FROM uyeler WHERE id = '$_GET[id]'";
$result= mysql_query($sql,$connect);
while ($row=mysql_fetch_array($result))
{
echo $row['isim']." ";
echo $row['soyisim']."<br />";
}
echo "<br />";
echo "çalıştırılan sorgu : ".$sql;
Yukarıda yazmış olduğumuz kod çok kolay şekilde ByPasslanmaktadır nasıl diye soracak olursanız id değerine ‘OR ‘x’=’x değerlerini girmeniz yeterli olacaktır uyeler tablosunda ki tüm kullanıcıları listeleyecektir.
PDO ile bu durumu nasıl düzeltebiliriz hemen yazalım
try {
$db = new PDO("mysql:host=localhost;dbname=portal", "root", "root");
} catch ( PDOException $e ){
print $e->getMessage();
}
$Gelen = $_GET["id"];
$Ara = $db->prepare("SELECT * FROM uyeler WHERE uyeler_id=:id");
$Ara->execute(array("id" => $Gelen));
$Liste = $Ara->fetchAll(PDO::FETCH_ASSOC);
if($Ara->rowCount() != "0"){
foreach($Liste as $Bas){
echo $Bas['uyeler_isim'];
echo $Bas['uyeler_soyisim'];
}
else
{
echo " Kullanıcı Bulunamadı";
}
PDO Candır diyerek konumu sonlandırıyorum görüşmek üzere.(www.sechunterz.pw)
0 comments:
Yorum Gönder