我是否需要转义text / plain或text / javascript?

时间:2012-04-03 20:04:46

标签: php javascript security xss

假设我有这样的事情:

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吗?

1 个答案:

答案 0 :(得分:0)

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

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