Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: PHP 的 mysql_real_escape_string 和 MySQL 注入
这是有问题的角色:
\x1A
为什么它会构成威胁,它是什么?谷歌搜索说这是一个控制字符,但我不明白这意味着什么,尤其是在转义数据的情况下。
谢谢
0x1A是 ctrl-z,在 DOS 时代它被用作 EOF(文件结束)标记。虽然它在任何现代数据库上都不是问题,但它可能被用来通过旧的 dos-days SQL 解析器偷偷额外的查询语句,所以你最终会得到类似的东西:
0x1A
UPDATE scores SET points=points+1 ctrl-z DROP TABLE scores
一个愚蠢的解析器会停在 ctrl-z 上,想着“嘿,看,这是文件的结尾”。整个字符串将被传递给数据库,如果它是一个“智能”数据库,将忽略 ctrl-z 并愉快地执行 drop 命令