Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Php 为什么需要从用户提供的数据中转义/删除此字符?_Php - Fatal编程技术网

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命令