查询网页中的SQL注入

时间:2016-12-08 11:13:31

标签: python sql-injection

假设您有一个网页要求您输入用于身份验证的用户名和密码。

用户名:" abs "密码为" 1234abcd " - 您可以进入您的个人资料。

但我的问题是,如果我输入" abs' - "在用户名字段中没有密码,它仍然返回我的个人资料页面?

服务器,SQL和用户幕后发生了什么?

我似乎无法理解这一点。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您显然将参数替换为SQL字符串而不转义它们。该代码可能看起来像:

$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";

因此,在您的输入被替换后,结果是:

SELECT * FROM users WHERE username = 'abs' --' AND password = ''

您输入的用户名中的引号正在终止字符串。然后--开始注释,因此忽略查询的其余部分。因此,您已将查询转换为:

SELECT * FROM users WHERE username = 'abs'

并且它不再检查密码。