假设我有这样的事情:
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();
}
我可以在echo语句中使用htmlspecialchars
吗,如果它被解释为html则会混淆它,另一方面,如果浏览器确实解释,则不会让他们冒险尝试进行xss攻击它是html。
我该怎么办?我不应该担心而不是htmlspecialchars
吗?
答案 0 :(得分:0)
不,你不应该使用htmlspecialchars
。这些都没有意义,因为htmlspecialchars
旨在避免HTML注入。但是,如果使用JSON,则客户端代码需要注意它如何使用返回值。
例如,将其注入innerHTML
并不安全。