如果我的网页的CSP设置为:

default-src 'self'; img-src *

或类似的东西,我有一个像这样的iframe:
some legal content
<iframe sandbox="allow-scripts" srcdoc="&lt;script>alert('arbitrary code')&lt;/script>"></iframe>

是否可以允许iframe中的代码违反父框架的CSP,并允许内联脚本/样式,来自其他域的内容或任何其他不违反沙箱限制的HTML内容?

目前,这将使:



CSP spec确认这是正确的行为:

最佳答案

这不可能。

只有两种方法可以完成您要执行的操作:

  • 更改父页面的CSP规则以将您的任意代码列入白名单(我建议您为任意内容而不是insafe inline使用CSP nonce或hash)。
  • 使用可控制的规则将iframe指向外部(子)域,并使用frame-srcchild-src将其列入白名单(请参见第1点)。
  • 关于html - 是否有可能仅将CSP应用于父框架,而不应用于任何iframe?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30428681/

    10-13 02:28