我正在学习PHP和MySQL。我在PHP手册页中遇到了一个SQL注入的示例,其中最后一个注入的SQL查询是:
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''我对OR ''=''在此上下文中的含义感到困惑?我知道这条语句是做什么的,但我只是试图理解它如何在另一个场景中使用,以及''=''意味着什么。
谢谢!
发布于 2013-05-06 05:53:12
如果您接受SELECT * FROM users WHERE user='aidan' AND password='$password'格式的查询,用户可以填写' OR ''='作为密码,这将关闭password字段,然后允许''=''查询检查是否为''='',这将返回true并使他们在不输入有效密码的情况下获得访问权限。
发布于 2013-05-06 05:51:21
''=''总是对true.进行password='' OR ''=''求值
→不会检查密码,因此您可以在没有正确密码的情况下获得用户访问权限。
发布于 2013-05-06 05:53:18
这只是一个表示真的表达式,它不太可能用于其他场景
https://stackoverflow.com/questions/16389487
复制相似问题