element.innerHTML

您所在的位置:网站首页 青岛旅游有限公司 element.innerHTML

element.innerHTML

2024-01-25 03:33| 来源: 网络整理| 查看: 265

用 innerHTML 插入文本到网页中并不罕见。但这有可能成为网站攻击的媒介,从而产生潜在的安全风险问题。

jsconst name = "John"; // assuming 'el' is an HTML DOM element el.innerHTML = name; // harmless in this case // ... name = "alert('I am John in an annoying alert!')"; el.innerHTML = name; // harmless in this case

尽管这看上去像 cross-site scripting 攻击,结果并不会导致什么。HTML 5 中指定不执行由 innerHTML 插入的 标签。

然而,有很多不依赖 标签去执行 JavaScript 的方式。所以当你使用innerHTML 去设置你无法控制的字符串时,这仍然是一个安全问题。例如:

jsconst name = ""; el.innerHTML = name; // shows the alert

基于这个原因,当插入纯文本时,建议不要使用 innerHTML 。取而代之的是使用 Node.textContent ,它不会把给定的内容解析为 HTML,它仅仅是将原始文本插入给定的位置。

警告: 如果你的项目将要经过各种形式的安全检查的话,使用 innerHTML 可能导致代码被拒绝。例如,如果你在浏览器扩展中使用 innerHTML 并将扩展提交到 addons.mozilla.org 的话,它将会在自动审核过程中被拒绝。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3