此代码是否对SQL注入开放?

时间:2013-06-08 08:50:32

标签: php mysql sql code-injection mysql-real-escape-string

有人可以告诉我这段代码是否对SQL Injection开放以及原因:

$x = $_REQUEST['id'];
$x = mysql_real_escape_string($x);
$del = "DELETE FROM Y WHERE id = ".$x;
mysql_query($del);

3 个答案:

答案 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()来逃避它