Cross-Origin-Embedder-Policy: 如何只允许某些域?

Cross-Origin-Embedder-Policy: how to allow only certain domains?

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

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

不幸的是,我的页面中仍然需要的第 3 方服务 IFRAME 不再加载。 即使 embedded-policy 打开,也有允许第三方域的方法吗?

谢谢。 达里奥.

您需要控制要嵌入到 remove/amend 其 CORS 策略的域。如果该域已明确阻止跨源请求,您将无能为力。

这用于避免任何人劫持您想要的任何网站(您可以在 iframe 中全屏显示 Google 运行 您的广告在 bettergoogle.com 顶部,诸如此类). This will help out read this one

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

来自第 3 方网站的响应 header:

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

如果你不能控制它,你就无能为力。

如果加载到iframe的文档是cross-origin,则需要发送以下两个headers:

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

如果有困难,请register for an origin trial暂时免除您域的要求。这将使您的网站至少在 Chrome.

上使用没有 COOP/COEP headers 的 SharedArrayBuffer

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

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