JavaScript能否绕过iframe中的CSP元标签?
Simon Willison··作者 Simon Willison
关键信息
测试是在iframe内容顶部注入CSP元标签进行的;随后不受信任脚本尝试修改或删除它时被浏览器阻止,表明CSP的执行发生在解析过程早期。
资讯摘要
西蒙·威尔森研究了当内容安全策略(CSP)通过<meta>标签应用于iframe内部时的行为,尤其是在不受信任的JavaScript可能试图操纵它的场景下。他的实验表明,即使iframe内的恶意或不受信任脚本尝试移除或更改CSP元标签,浏览器仍会强制执行该策略。这对希望安全地嵌入第三方或用户生成内容的开发者来说非常重要——无需将内容托管在独立域名上。
这一结果支持使用CSP元标签作为轻量且有效的沙箱环境安全措施。同时说明,仅靠客户端脚本无法轻易绕过CSP的执行。
资讯正文
<p><strong>研究:</strong> <a href="https://github.com/simonw/research/tree/main/test-csp-iframe-escape#readme">JavaScript 是否能绕过 iframe 内部的 CSP meta 标签?</a></p>
<p>在尝试构建我自己的 Claude Artifacts 版本时,我开始好奇如何在不使用单独域名托管文件的情况下,将 CSP 头部应用到沙箱 iframe 中的内容。结果发现,你可以在 iframe 内容的顶部注入 <code><meta http-equiv="Content-Security-Policy"...></code> 标签,即使后续不受信任的 JavaScript 尝试修改它们,这些标签仍然会被遵守。</p>
来源与参考