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