1

我有一个呈现一些嵌套 iFrame 的网页。假设 abc.com 加载 def.com,然后在另一个 iFrame 中打开 ghi.com。abc.com -> def.com -> ghi.com

ghi.com 已将选项设置为仅允许某些特定站点对其进行 iFrame。ghi.com 中的设置应该是什么以允许它被渲染?我们需要将 abc.com 和 def.com 都列入白名单,还是只列入 def.com 或 abc.com?

4

1 回答 1

0

我在尝试在 IE 11 中允许这种情况时遇到了 X-Frame-Options 的这种情况。我发现将“ALLOW-FROM top-level-site-domain”的 X-Frame-Options 值用于响应两个嵌套的 iFrame。使用您的示例, def.com 和 ghi.com 响应都会设置类似于以下内容的标题:

“X-Frame-Options”:允许来自 abc.com

作为旁注,根据OWasp,在您的示例中将 def.com 的 X-Frame-Options 标头设置为 ALLOW-FROM 和 ghi.com 的 SAMEORIGIN 将不起作用。

请记住,其他浏览器(例如 Chrome)支持您也需要设置的 Content-Security-Policy。在我们的例子中,我们的域都是子域,所以我们的场景很容易使用通配符使用这个标头。first.example.com -> second.example.com ->third.example.com 的场景允许我们为 second 和 third.example.com 响应标头设置以下内容:

“Content-Security-Policy”:frame-ancestors 'self' https://*.example.com

于 2017-10-04T11:58:42.797 回答