bjb*_*568 7 html iframe sandbox content-security-policy
如果我有一个 CSP 设置为的网页:
default-src 'self'; img-src *
Run Code Online (Sandbox Code Playgroud)
或类似的,我有一个像这样的 iframe:
some legal content
<iframe sandbox="allow-scripts" srcdoc="<script>alert('arbitrary code')</script>"></iframe>
Run Code Online (Sandbox Code Playgroud)
是否有可能允许 iframe 中的代码违反父框架的 CSP 并允许内联脚本/样式、来自其他域的内容或任何其他不违反沙箱限制的任意 HTML 内容?
目前这将给出:
[错误] 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default-src 'self'”。请注意,'script-src' 未明确设置,因此使用 'default-src' 作为后备。(关于:srcdoc,第 1 行)
该CSP规范确认这是正确的行为:
每当用户代理创建一个
iframesrcdoc文档中嵌套在受保护的资源浏览器上下文,如果用户代理执行任何政策 对于受保护的资源,用户代理必须执行这些 政策的iframesrcdoc文件也是如此。
这不可能。
只有两种方法可以实现您所追求的目标:
frame-src&将其列入白名单child-src(请参阅第 1 点)。