3

我有以下代码,它容易受到 SQL 注入的影响(我认为?):

$IDquery = mysqli_query($connection, "SELECT `ID` FROM users WHERE username=$usernamelogin");

我没有逃避$usernamelogin, 这不是参数化查询。这显然需要解决,你不需要指出这一点,这不是这个问题的意义所在。在修复它之前,我想确保我尽可能地了解 SQL 注入是如何工作的。因此,我尝试创建一个名为“droptable”的表并将以下内容输入到用户名输入中:

x; DROP TABLE droptable;

我认为应该输入这个 SQL 查询:

SELECT `ID` FROM users WHERE username=x; DROP TABLE droptable;

但是,droptable 仍然存在,并且其中的行保持不变。谁能告诉我为什么?

4

2 回答 2

1

mysqli_query() 不支持多查询执行。

于 2013-08-31T05:35:30.063 回答
0

你没有引号,$usernamelogin所以当你提供一个会产生错误的字符串时。添加引号或提供数字

于 2013-08-31T00:54:29.097 回答