SQL注入不适用于SQL注入易受攻击的表单


SQL Injection not working on SQL injection vulnerable forms?

我有以下代码,很容易受到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仍然存在,并且其中的行没有受到影响。有人能告诉我为什么吗?

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

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