我有以下代码,很容易受到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()不支持多个查询执行。

关于php - SQL注入(inject)不适用于SQL注入(inject)易受攻击的表单?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18543384/

10-12 01:12