执行以下操作是否100%安全?

Pol*_*lar 5 javascript security escaping

执行以下操作是否100%安全?:

var untrusted_input_from_3rd_party = '<script>alert("xss")<\/script>';
document.getElementsByTagName('body')[0].appendChild(document.createTextNode(untrusted_input_from_3rd_party));
Run Code Online (Sandbox Code Playgroud)

考虑到第三方可以输入任何内容(HTML,CSS等),我可以确定如果我将其传递createTextNode然后将其添加到dom中它不会造成任何伤害吗?

Mik*_*uel 5

这是防止XSS的好方法.DOM操作通过createTextNode广泛用于安全地嵌入第三方文本.

也就是说,除了XSS之外还有问题.如果不受信任的输入类似于以下情况,它不会阻止社交工程尝试:

警告:我们已在您的计算机上检测到恶意软件.将http://evil.org/复制并粘贴到浏览器URL栏中以解决问题.

防止社交工程(除了不包括第三方内容)的最佳方法是明确说明内容来自第三方.