为什么fetchArray不直接应用htmlspecialchars?

时间:2011-12-17 14:05:50

标签: php mysql xss sql-injection

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

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

$results->fecthArray(); 

不直接应用函数htmlspecialchars?

1 个答案:

答案 0 :(得分:1)

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

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