'innerText'是否阻止XSS?

时间:2018-10-08 17:05:00

标签: javascript html xss

如果我要在我的网站上显示用户生成的输入,仅通过在JavaScript中执行Element.innerText = "user input"来显示它是否足够安全,还是我需要另外过滤输入以防止XSS? / p>

1 个答案:

答案 0 :(得分:4)

  

'innerText'是否阻止XSS?

并非在所有情况下都如此! following excerpt is from the OWASP Foundation regarding unsafe usages of innerText

  

innerText是一个被认为是安全的属性示例。一些论文或指南主张使用它作为innerHTML的替代方法,以减轻innerHTML中的XSS。但是,根据应用了哪种innerText的标签,可以执行代码。

内容提供了以下示例(为清楚起见,已对其进行了修改)

const tag = document.createElement("script");
tag.innerText = `console.log('Inner Text Used')`;
document.body.appendChild(tag); //executes code


但是,在大多数情况下,innerText是用于防止XSS的方法,也是documented on OWASP

  

...使用innerText / textContent。这将解决问题,这是补救基于DOM的XSS漏洞的正确方法