mysql语法澄清''=''

时间:2013-05-05 21:49:16

标签: php mysql syntax

我正在学习PHP和MySQL。我从PHP手册页中看到了一个SQL注入示例,其中最后注入的SQL查询是:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

我对OR ''=''在这种情况下的含义感到困惑?我知道那个语句的作用,但我只是想了解它如何在另一个场景中使用,以及''=''表示什么。

谢谢!

3 个答案:

答案 0 :(得分:4)

  1. ''=''始终评估为 true
  2. 整个条件password='' OR ''=''因此也会评估 true
  3. →不会检查密码,您可以在没有正确密码的情况下获得用户访问权限。

答案 1 :(得分:3)

如果您接受SELECT * FROM users WHERE user='aidan' AND password='$password'格式的查询,则用户可以填写' OR ''='以获取将关闭密码字段的密码,然后允许SQL查询检查{{1}这将返回''=''并使他们无需输入有效密码即可获得访问权。

答案 2 :(得分:1)

这只是一个表达真实的表达,不太可能在其他场景中使用