我从一个不可信的来源下载了一些 html 树,并用它来将内容显示为我页面中某个 HTML div 的子元素。但是,下载的代码存在运行脚本/或在事件处理程序中执行脚本的危险。有没有可能在HTML中就像使用标签来定义脚本一样,做一个
<noscriptex>
<script>
...
</script>
</noscriptex>
那么浏览器不会执行这个标签内的任何代码?
如果没有这样的东西,我该如何清理下载的 HTML 以显示 DOM 元素及其 CSS,而不涉及任何脚本?
最佳答案
没有;没有这样的功能。
相反,您需要解析 HTML 并使用严格的白名单删除任何无法识别的标签和属性。
您还需要验证属性值;尤其是 URL。
关于javascript - HTML Javascript - 防止从 dom 树的子节点执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488339/