.textContent完全安全吗?

use*_*ber 8 javascript css security escaping

我正在element.textContent = unescapedData努力将非转义用户输入放在网站上.有没有办法让攻击者用这个做坏事?

此外,有没有什么办法让攻击者影响之外的页面element(意外30rem3rem箱子),如果它具有以下CSS?

max-width: 30rem;
max-height: 3rem;
overflow: hidden;
Run Code Online (Sandbox Code Playgroud)

我曾考虑使用奇怪或无效的Unicode字符,但无法找到有关如何完成此操作的任何信息.

A. *_*gan 6

相关规范似乎在https://dom.spec.whatwg.org/#dom-node-textcontent.假设element是Element或DocumentFragment,则创建Text节点并将其数据设置为字符串unescapedData.这是一个DOM文本节点保证不被解释为HTML?似乎非常明确的是,浏览器不会将Text节点呈现为除文本之外的任何内容.我还没有在规范中追踪到这一点.

因此,除非浏览器有缺陷,否则答案是"否"和"否".


gue*_*314 3

.textContent 中设置的纯文本在 .type 设置为 text/javascript 的脚本元素之外不可执行。

建议在表单内的输入元素处使用带有适当正则表达式的模式属性来解决潜在问题。