我正在学习PHP和MySQL。我从PHP手册页中看到了一个SQL注入示例,其中最后注入的SQL查询是:
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''
我对OR ''=''
在这种情况下的含义感到困惑?我知道那个语句的作用,但我只是想了解它如何在另一个场景中使用,以及''=''
表示什么。
谢谢!
答案 0 :(得分:4)
''=''
始终评估为 true 。password='' OR ''=''
因此也会评估 true 。→不会检查密码,您可以在没有正确密码的情况下获得用户访问权限。
答案 1 :(得分:3)
如果您接受SELECT * FROM users WHERE user='aidan' AND password='$password'
格式的查询,则用户可以填写' OR ''='
以获取将关闭密码字段的密码,然后允许SQL查询检查{{1}这将返回''=''
并使他们无需输入有效密码即可获得访问权。
答案 2 :(得分:1)
这只是一个表达真实的表达,不太可能在其他场景中使用