0

有人可以告诉我这段代码是否对 SQL 注入开放以及为什么:

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

3 回答 3

2

这是; 考虑x存在id,这导致查询

DELETE FROM Y WHERE id = id

从表中删除所有行。

于 2013-06-08T09:38:51.220 回答
0

这是因为你没有引用 x。

你也可以使用一些简单的东西,比如:

sprintf("DELETE FROM Y WHERE id = %u", $x);
于 2013-06-08T08:53:38.817 回答
-6

它不应该像你使用 mysql_real_escape_string() 来逃避它

于 2013-06-08T08:51:33.013 回答