SQL注入无法处理SQL注入易受攻击的表单?

时间:2013-08-31 00:52:12

标签: php sql sql-injection

我有以下代码,它易受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仍然存在,并且其中的行不受影响。有谁可以告诉我为什么?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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