Php 为什么需要从用户提供的数据中转义/删除此字符?
可能重复:Php 为什么需要从用户提供的数据中转义/删除此字符?,php,Php,可能重复: 这就是问题中的人物: \x1A 它为什么会构成威胁?它是什么?谷歌说这是一个控制字符,但我不明白这意味着什么,特别是在转义数据的上下文中 谢谢0x1A是ctrl-z,在DOS时代它被用作EOF(文件结束)标记。虽然它在任何现代数据库上都不应该是问题,但它可以被用来将额外的查询语句偷偷带过旧的dos days SQL解析器,因此您最终会得到如下结果: UPDATE scores SET points=points+1 ctrl-z DROP TABLE scores 一个愚蠢的解
这就是问题中的人物:
\x1A
它为什么会构成威胁?它是什么?谷歌说这是一个控制字符,但我不明白这意味着什么,特别是在转义数据的上下文中
谢谢
0x1A
是ctrl-z,在DOS时代它被用作EOF(文件结束)标记。虽然它在任何现代数据库上都不应该是问题,但它可以被用来将额外的查询语句偷偷带过旧的dos days SQL解析器,因此您最终会得到如下结果:
UPDATE scores SET points=points+1
ctrl-z
DROP TABLE scores
一个愚蠢的解析器会停在ctrl-z,想着“嘿,看,这是文件的结尾”。整个字符串将被传递到DB,如果它是“智能”DB,将忽略ctrl-z并愉快地执行drop命令,0x1A是ctrl-z,在DOS中用作EOF(文件结束)标记。虽然它在任何现代数据库上都不应该是问题,但它可以被用来将额外的查询语句偷偷带过旧的dos days SQL解析器,因此您最终会得到如下结果:
UPDATE scores SET points=points+1
ctrl-z
DROP TABLE scores
一个愚蠢的解析器会停在ctrl-z,想着“嘿,看,这是文件的结尾”。整个字符串将被传递到DB,如果它是“智能”DB,将忽略ctrl-z并愉快地执行drop命令