0

假设我有这样的事情:

if ($command === 'txt') {
    header('Content-type: text/plain;charset=utf-8');
    echo $result;
    exit();
} else ($command === 'js') {
    $json = array( $result );
    header('Content-type: text/javascript;charset=utf-8');
    echo $callback . '(' . substr(json_encode($json), 1, -1) . ');';
    exit();
}

我可以htmlspecialchars在 echo 语句上使用吗,如果它被解释为 html,它会搞砸,另一方面,如果浏览器将它解释为 html,它们不会留下有人可能尝试进行 xss 攻击的风险。

我该怎么办?我不应该担心htmlspecialchars吗?

4

1 回答 1

0

不,你不应该使用htmlspecialchars. 这些都没有意义,因为htmlspecialchars旨在避免 HTML 注入。但是,如果您使用 JSON,您的客户端代码需要注意它如何使用返回值。

例如,将其注入innerHTML是不安全的。

于 2012-04-03T20:06:10.123 回答