我該如何檢查這是否是難以治癒的?如何在此php代碼中檢查sql注入?
function clean($str){
return mysql_real_escape_string(stripcslashes(strip_tags(htmlspecialchars($str))));
}
if($_POST['submit']) {
$sql = "INSERT INTO comments(blog_id, dateposted, name, comment) VALUES
(" . clean($validentry) . "
, NOW()
, '" . clean($_POST['name']) . "'
, '" . clean($_POST['comment']) . "'
);";
mysql_query($sql);
非常感謝先生 – ktm 2011-05-07 11:15:25
+1,但是如果數據庫模式h作爲最低限度的優秀設計,'blog_id'只會接受/轉換整數,我不認爲這可以被認爲是一個漏洞。 – 2011-05-07 11:52:28
@Alix'mysql_real_escape_string()'只轉義引號字符。它不會*清理像'1; (SQL代碼在這裏)',這將在查詢中執行 – 2011-05-07 11:53:39