frame-ancestors 和 child-src 有什么区别?

信息安全 内容安全策略 混合内容
2021-08-17 11:44:16

这两个选项似乎都可以控制谁可以将内容嵌入<iframe>标签中,就像这样X-Frame-Options做一样。Chrome 和 Safari 正在弃用此标头(allow-from例如,部分弃用),因此 Firefox 和 Edge 也不再使用它只是时间问题,因此只有 Content-Security-Policy 可用。

我一直在做一些测试,通过使用这些选项中的任何一个都可以实现相同的结果(阻止/允许特定域),那么,它们之间的真正区别是什么?

期待一些使用示例,其中一个有用,另一个没用。

1个回答

如果其他人有兴趣,给定两个站点A并且B,如果B有一个 iframe A

B
+-------------+
|             |
|   A         |
|   +------+  |
|   |      |  |
|   |      +-------> frame-ancestors B;
|   +------+  |
|             |
+-----+-------+
      |
      |
      +------------> child-src A;

  • A必须frame-ancestors包含B
  • B必须child-src包含A

因此,frame-ancestors当您希望网站能够在 iframe 中加载您的网站时child-src使用,而当您希望允许您的网站能够在 iframe 中加载特定网站时使用。