【发布时间】:2014-11-13 18:40:32
【问题描述】:
是否可以告诉浏览器不要从 HTML 文档的特定部分运行 JavaScript?
喜欢:
<div script="false"> ...
它可以用作附加的安全功能。我想要的所有脚本都加载到文档的特定部分。文档的其他部分不应有脚本,如果有,则不应运行。
【问题讨论】:
-
我不知道。这是评论而不是答案,因为我不能说 100%
-
@chiastic-security 只能在 DOM 加载完成后才能遍历 DOM。到那时,该块中的任何 JS 都会执行。
-
我能想到的最接近的是内容安全策略,您可以在其中按来源限制脚本(也许这就是您想要的)。例如。通过指定
script-src:"self",您只允许来自您的域的脚本在页面中运行。如果您有兴趣,请阅读this article from Mike West about CSP。 -
@chiastic-security 在标头已发送后,您打算如何放宽标头中指定的限制?无论如何,由于 CSP 默认禁用内联脚本,并且除非列入白名单,否则不会加载远程脚本,为什么需要将它与其他任何东西结合使用? CSP 可能是 OP 的最佳选择;我希望有人留下 CSP 答案。
-
如果您担心有人将任意块注入您的 HTML,您提出的解决方案将如何防止他们注入
</div>以关闭此 DOM 元素,然后启动一个新的<div>将是未运行脚本的兄弟姐妹?
标签: javascript html script-tag