HTMLでのXMLインジェクション攻撃に関するレポートを書いています。したがって、HTMLのコンテンツとして(マングルされた)HTMLコンテンツを使用します。そのため、HTMLコンテンツをCDATAブロックでラップしようとしていますが、正しくレンダリングされているようです。
私は(W3Cによって検証された)文書を持っています:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>report</title>
</head>
<body>
<div><![CDATA[AuthType=<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">]]></div>
</body>
</html>
ウィキペディアの記事についての私の理解から、これは、コンテンツが「パーサーがマークアップではなく文字データとしてのみ解釈されるようにマークされる」必要があることを意味します。したがって、出力は次のようになります。
AuthType=<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">
ただし、両方Chrome 21.0.1180.60 m
で、Firefox 14.0.1
すべてのレンダリングは
]]>
何が起こっている?<![CDATA[
から最初までのすべてが、]]>
すべてのキャラクターがエスケープされたかのように画面に表示されるべきではありませんか?