在一个网站上,我必须在我的网站上嵌入一个需要以下标头的 iframe,因为它需要 SharedArrayBuffer 功能:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
不幸的是,我的页面中仍然需要的第 3 方服务 IFRAME 不再加载。即使打开了嵌入式策略,有没有办法允许第三方域?
谢谢。达里奥。
在一个网站上,我必须在我的网站上嵌入一个需要以下标头的 iframe,因为它需要 SharedArrayBuffer 功能:
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin
不幸的是,我的页面中仍然需要的第 3 方服务 IFRAME 不再加载。即使打开了嵌入式策略,有没有办法允许第三方域?
谢谢。达里奥。
如果加载到 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
第三方网站必须在内容安全策略响应标头中添加您的域:
来自第 3 方网站的响应标头:
"Content-Security-Policy: frame-ancestors 'self' https://*.yourdomain.com;";
如果您无法控制它,那么您将无能为力。
您需要控制要嵌入的域以删除/修改其 CORS 策略。如果域已明确阻止跨域请求,则您无能为力。
这用于避免任何人劫持您想要的任何网站(您可以在 iframe 中使用全屏 Google 并在 Bettergoogle.com 上运行您的广告,诸如此类)。 这将有助于阅读这个