我正面临着使用javaScript将此字符串呈现为html的困难
"<img onerror='window.document.body.innerHTML = \"<h1>XSS</h1>\";' src=''> "
当我尝试使用JavaScript将其呈现为HTML元素时,我得到的唯一输出是普通页面上的XSS
请建议一种方法,我可以把它变成html作为纯文本。
发布于 2018-08-25 03:59:31
尝试使用Node.textContent
而不是Node.innerHTML:
"<img onerror='window.document.body.textContent = \"<h1>XSS</h1>\";' src=''> "
https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent#Differences_from_innerHTML
发布于 2018-08-25 04:11:19
如果您希望将整个html代码显示为文本,则使用innerText
或textContent
,因为它们不会尝试呈现html代码。
//using template literals ` (backtick) to help not need escaping quotes
document.body.innerText = `<img onerror="window.document.body.innerHTML ='<h1>XSS</h1>';" src=''>`
否则,如果希望<h1>
部件显示为文本,则在内联js代码上使用相同的innerText
/ textContent
<img onerror="window.document.body.innerText ='<h1>XSS</h1>';" src=''>
发布于 2018-08-25 04:13:38
如果您想跳过render中的html代码,请使用element.innerText
:
document.getElementById("test").innerText = "<h1>XSS</h1>";
<div id="test">test</div>
https://stackoverflow.com/questions/52010950
复制相似问题