首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql语法说明‘’=‘’

mysql语法说明‘’=‘’
EN

Stack Overflow用户
提问于 2013-05-06 05:49:16
回答 3查看 77关注 0票数 3

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

代码语言:javascript
复制
SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

我对OR ''=''在此上下文中的含义感到困惑?我知道这条语句是做什么的,但我只是试图理解它如何在另一个场景中使用,以及''=''意味着什么。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-06 05:53:12

如果您接受SELECT * FROM users WHERE user='aidan' AND password='$password'格式的查询,用户可以填写' OR ''='作为密码,这将关闭password字段,然后允许''=''查询检查是否为''='',这将返回true并使他们在不输入有效密码的情况下获得访问权限。

票数 3
EN

Stack Overflow用户

发布于 2013-05-06 05:51:21

  1. ''=''总是对true.
  2. The整个条件求值,因此也对true.

进行password='' OR ''=''求值

→不会检查密码,因此您可以在没有正确密码的情况下获得用户访问权限。

票数 4
EN

Stack Overflow用户

发布于 2013-05-06 05:53:18

这只是一个表示真的表达式,它不太可能用于其他场景

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16389487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档