2013-12-09 11 views
9

"SQL injection saldırılarına karşı korumak için her zaman hazırlanan sorgular kullanın" yinelenen yorumunu görüyorum.Hazır sorgular ve yapılandırılmış sorgular

Hazırlanmış bir sorgu ile kullanıcı girdisinin her zaman sterilize edildiği yapılandırılmış sorgu kullanımı arasındaki pratik fark nedir?

ben diğeri üzerinde birini kullanmak isteyeyim, hangi nedenlerle ayrıntı ve tarzından Kenara

$stmt = mysqli_prepare($db, "INSERT INTO foo (a, b) VALUES (?, ?)"); 
mysqli_stmt_bind_param($stmt, "ss", $a, $b); 

Hazırlanan

function quote($value) { 
    global $db; 
    return "'" . mysqli_real_escape_string($db, $value) . "'"; 
} 

$sql = "INSERT INTO foo (a, b) VALUES (" . quote($a) . "," . quote($b) . ")"; 

inşa?

cevap