Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么此SQL查询会使任何用户在没有有效密码的情况下登录到系统?_Mysql_Sql - Fatal编程技术网

Mysql 为什么此SQL查询会使任何用户在没有有效密码的情况下登录到系统?

Mysql 为什么此SQL查询会使任何用户在没有有效密码的情况下登录到系统?,mysql,sql,Mysql,Sql,我正在学习PHP和SQL注入。在一篇教程中,它说: 如果取消转义,发送到MySQL的查询将是: SELECT * FROM users WHERE user='aidan' AND password='' OR ''='' 这将允许任何人在没有有效密码的情况下登录。有人能告诉我为什么上面的查询允许任何人在没有有效密码的情况下登录吗?'='是真的。他们正在做或TRUE。因此,整个条款是正确的。使用事先准备好的陈述。有了准备好的语句,SQL注入(以及需要转义字符串)就成了过去!:-d将您的输入擦洗

我正在学习PHP和SQL注入。在一篇教程中,它说:

如果取消转义,发送到MySQL的查询将是:

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

这将允许任何人在没有有效密码的情况下登录。有人能告诉我为什么上面的查询允许任何人在没有有效密码的情况下登录吗?

'='
是真的。他们正在做
或TRUE
。因此,整个条款是正确的。使用事先准备好的陈述。有了准备好的语句,SQL注入(以及需要转义字符串)就成了过去!:-d将您的输入擦洗为仅安全字符。thx Rocket。此查询是否等于从用户中选择*?是的,因为
user='aidan'和password=''或'=''
始终为真(将其视为
(user='aidan'和password=''或'=''