Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 为什么fetchArray不';是否不直接应用htmlspecialchars?_Php_Mysql_Xss_Sql Injection - Fatal编程技术网

Php 为什么fetchArray不';是否不直接应用htmlspecialchars?

Php 为什么fetchArray不';是否不直接应用htmlspecialchars?,php,mysql,xss,sql-injection,Php,Mysql,Xss,Sql Injection,为了避免SQL注入和XSS,我们使用函数htmlspecialchars()或其他类似escapeString的函数 如果每次构造SQL查询并获取结果时都必须使用此函数,那么为什么要使用此函数呢 $results->fecthArray(); 不直接应用函数htmlspecialchars吗?当编程/指令语言发生更改时,就会发生注入攻击。例如,从PHP到SQL,您需要mysqli\u real\u escape\u string在SQL服务器处理之前对查询字符串进行转义 为了回答您的问

为了避免SQL注入和XSS,我们使用函数htmlspecialchars()或其他类似escapeString的函数

如果每次构造SQL查询并获取结果时都必须使用此函数,那么为什么要使用此函数呢

$results->fecthArray(); 

不直接应用函数htmlspecialchars吗?

当编程/指令语言发生更改时,就会发生注入攻击。例如,从PHP到SQL,您需要
mysqli\u real\u escape\u string
在SQL服务器处理之前对查询字符串进行转义


为了回答您的问题,
$results
仍然是一个PHP变量,您只需在输出到HTML表单之前进行转义即可。大多数人不会马上这样做,有些人甚至可能不会输出到HTML,因此该函数不需要自动应用
htmlspecialchars

@Frank你是对的,但我想知道在什么情况下我不想要它,因为你绝对确定你想要的输出不应该被转义;e、 g.您存储了最初未编码的数据。因此,根据Frank的评论,这属于事实。一个例子是,如果我想将javascript函数存储在数据库中。我知道,不太可能。像PHP这样的语言就其性质而言,将有多种用途。然而,一个框架可能会实现自己的fetchArray方法,该方法将应用htmlspecialchars。htmlspecialchars即使在输出到HTML时也不总是正确的转义。例如:纯文本电子邮件、文本文件输出、来自管理区域的格式化文本。