我正在寫HTML報告關於XML注入攻擊。因此,我將(HTML)內容作爲HTML的內容。因此,我試圖將我的HTML內容封裝在CDATA塊中,但似乎確實正在渲染。爲什麼我的HTML中的CDATA部分沒有渲染?
我有(validated by 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>
從我的Wikipedia article這個的理解意味着內容應該是「標記爲解析器來解釋,因爲只有字符數據,而不是標記」。所以輸出應該是
AuthType=<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert('XSS')</SCRIPT>">
然而,在這兩個Chrome 21.0.1180.60 m
和Firefox 14.0.1
都呈現爲
]]>
這是怎麼回事?屏幕上不應該顯示從<![CDATA[
到第一個]]>
的所有內容,就好像每個角色都已經逃脫一樣?
可能重複http://stackoverflow.com/questions/3880644/how-to-use-cdata-in-html-documents – sundar 2012-08-07 17:34:23