有人可以告诉我这段代码是否对SQL Injection开放以及原因:
$x = $_REQUEST['id'];
$x = mysql_real_escape_string($x);
$del = "DELETE FROM Y WHERE id = ".$x;
mysql_query($del);
答案 0 :(得分:2)
是的;将x
视为id
,这会导致查询
DELETE FROM Y WHERE id = id
删除表格中的所有行。
答案 1 :(得分:0)
,因为你不引用x。
您还可以使用以下简单的内容:
sprintf("DELETE FROM Y WHERE id = %u", $x);
答案 2 :(得分:-6)
它不应该像你使用mysql_real_escape_string()来逃避它