Php 为什么fetchArray不';是否不直接应用htmlspecialchars?
为了避免SQL注入和XSS,我们使用函数htmlspecialchars()或其他类似escapeString的函数 如果每次构造SQL查询并获取结果时都必须使用此函数,那么为什么要使用此函数呢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服务器处理之前对查询字符串进行转义 为了回答您的问
$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时也不总是正确的转义。例如:纯文本电子邮件、文本文件输出、来自管理区域的格式化文本。