首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL注入中,为什么不使用OR 1或or 2>1而不是OR 1=1?

在SQL注入中,为什么不使用OR 1或or 2>1而不是OR 1=1?
EN

Security用户
提问于 2020-05-17 19:00:26
回答 2查看 743关注 0票数 -1

我到处阅读有关SQL注入的内容,据说如果SQL查询是:

SELECT * FROM table_name where username='xxxxx' AND password ='xxxx'

如果您想输入“始终为真”的条件,则必须使用'OR 1=1--,则查询如下:

SELECT * FROM table_name where username=''OR 1=1--' AND password ='xxxx'

SQL查询背后的逻辑很简单,因为OR 1=1总是正确的,这就是它被执行的原因。然而,2>13>2总是被认为是真的,但是为什么我们不在SQL注入中使用'OR 2>1'OR 1表达式呢?

EN

回答 2

Security用户

发布于 2020-05-18 10:03:07

它只是一个用于测试SQL语句的简单字符串。不需要精确地使用1=1。就像你说的,5>3将以完全相同的方式工作。

不幸的是,1=1是如此普遍,以至于它会触发保护代码。受到弱保护的代码可能容易受到SQL注入的攻击,并且无法通过or 1=1;测试。所以有时候变化是有道理的。

票数 3
EN

Security用户

发布于 2020-05-17 20:04:24

您可以使用计算结果为true的任何表达式,它不必是1=1,根据,我认为SQL不包含true的文字值。

1=1是我最容易写的,我习惯了它。

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

https://security.stackexchange.com/questions/231804

复制
相关文章

相似问题

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