【问题标题】:Cross-Origin-Embedder-Policy: how to allow only certain domains?Cross-Origin-Embedder-Policy:如何只允许某些域?
【发布时间】:2021-10-09 18:03:33
【问题描述】:

在一个网站上,我必须在我的网站上嵌入一个需要以下标头的 iframe,因为它需要 SharedArrayBuffer 功能:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

很遗憾,我的页面中仍需要的第 3 方服务 IFRAME 不再加载。 即使启用了嵌入式策略,是否有办法允许 3rd 方域?

谢谢。 达里奥。

【问题讨论】:

  • 你得到答案了吗?接受的答案对您有用吗?似乎 COOP/COEP 不应该与框架祖先有任何关系,但这能解决问题吗?

标签: security iframe iframe-app cross-origin-embedder-policy cross-origin-opener-policy


【解决方案1】:

如果加载到iframe中的文档是跨域的,需要发送以下两个header:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Resource-Policy: cross-origin

如果有困难,请register for an origin trial 暂时免除您的域的要求。这将让您的网站至少在 Chrome 上使用没有 COOP/COEP 标头的 SharedArrayBuffer。

与此同时,标准机构正在努力引入一个选项来加载 iframe,而无需这些标头。了解更多信息:

https://github.com/camillelamy/explainers/blob/master/anonymous_iframes.md

【讨论】:

    【解决方案2】:

    第 3 方网站必须在内容安全策略响应标头中添加您的域:

    来自第 3 方网站的响应标头:

    "Content-Security-Policy: frame-ancestors 'self' https://*.yourdomain.com;";
    

    如果你无法控制它,你将无能为力。

    【讨论】:

    • 谢谢!我无法验证这一点,因为我无法控制 3rd 方服务,但它继续我的想法!
    【解决方案3】:

    您需要控制要嵌入的域才能删除/修改其 CORS 政策。如果域已明确阻止跨域请求,则您无能为力。

    这用于避免任何人劫持您想要的任何网站(您可以在 iframe 中使用全屏 Google 并在 Bettergoogle.com 上投放您的广告,诸如此类)。 This will help out read this one

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多