2012-04-03 5 views
0

は、私がこのようなものがあるとします。text/plainまたはtext/javascriptからエスケープする必要がありますか?

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として解釈だ場合、一方で彼らは、誰かが試みるかもしれないリスクを残して持っていない、それを台無しにブラウザがHTMLと解釈した場合にはxss攻撃を行います。

どうすればよいですか?私は心配しないでくださいhtmlspecialchars

+0

プレーヤテキストをHTMLとして解釈するようにブラウザを使用する人は言い訳がありません。 –

答えて

0

いいえ、htmlspecialcharsを使用しないでください。 htmlspecialcharsはHTML注入を避けることを意図しているため、どちらも意味をなさないでしょう。しかし、JSONを使用する場合、クライアントコードは戻り値をどのように使用するか注意する必要があります。

たとえば、innerHTMLに注入することは安全ではありません。

関連する問題