1

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

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

不幸的是,我的页面中仍然需要的第 3 方服务 IFRAME 不再加载。即使打开了嵌入式策略,有没有办法允许第三方域?

谢谢。达里奥。

4

3 回答 3

1

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

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

如果有困难,请注册一个原始试验以暂时免除您的域的要求。这将使您的网站至少在 Chrome 上使用没有 COOP/COEP 标头的 SharedArrayBuffer。

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

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

于 2021-08-06T05:55:27.443 回答
0

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

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

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

如果您无法控制它,那么您将无能为力。

于 2021-08-04T16:24:45.817 回答
-1

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

这用于避免任何人劫持您想要的任何网站(您可以在 iframe 中使用全屏 Google 并在 Bettergoogle.com 上运行您的广告,诸如此类)。 这将有助于阅读这个

于 2021-08-04T16:14:54.187 回答