为什么我们有时要在 SQL 注入中使用 --+ 而不是 -- 来注释查询的其余部分?

信息安全 http sql注入 mysql
2021-09-07 04:14:28

我遇到过一些网站,当我用来--评论查询的其余部分时它不起作用,但当我尝试时--+它起作用了。

MySQL 官方文档中没有这样的东西--+,我们只有--和另外两种方式。

为什么会发生这种情况(详细)?我想确切地知道为什么这有时有效而无效,以及为什么MySQL 手册页中--没有评论?--+

1个回答

从文档中:

从 -- 序列到行尾。在 MySQL 中,--(双破折号)注释样式要求第二个破折号后跟至少一个空格或控制字符(例如空格、制表符、换行符等)。此语法与标准 SQL 注释语法略有不同,如第 1.8.2.4 节“'--' 作为注释的开始”中所述。

(强调我的)

许多 URL 解码器将+其视为空格。