HTML:禁用动态添加的 <script> 标签?

HTML: disable dynamically added <script> tags?

我从没想过要问这个问题,但我从事安全产品方面的工作,因此我们针对 XSS 实施了非常严格的保护:

这一切都很棒很花哨,除了它会损害用户体验并且不利于性能。当然,肯定有一种方法可以告诉浏览器不要执行初始文档解析后添加的 <script> 标签,对吧?我们使用现代捆绑工作流程,JavaScript 的任何延迟加载都将通过 import("/some/js/module") 调用完成,这些调用会被捆绑器重新定位,但永远不会在 运行 时提供动态值。

即使没有办法直接告诉浏览器不要 运行 动态添加(在页面加载后由 JS)<script> 标签,是否有一个经过验证的真实工作流程在 iframe 中渲染,比如说,markdown + HTML 子集用户制作的内容?我在高层次上熟悉 iframe,但我的意思是父 document/page 可以操纵 iframe 的 DOM 内容或其他内容,即使它确实在iframe,脚本代码会不会访问父文档的JS环境?

Actually that would be cool as a sandboxed way to display user content because they could intentionally include a script and make a little interactive widget for other users to mess with, in theory (maybe an antifeature in practice).

您可以使用 CSP(内容安全策略)

https://developers.google.com/web/fundamentals/security/csp#inline-code-considered-harmful

示例: 只允许:

<script nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
  // Some inline code I can't remove yet, but need to asap.
</script>

Content-Security-Policy: script-src 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa'

首先阻止所有内容:

default-src 'none'