问题标签 [cross-origin-embedder-policy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
629 浏览

html - 可以使用元标记(http-equiv)设置 COOP/COEP 标头吗?

Cross-Origin-Embedder-Policy和标头可以Cross-Origin-Opener-Policy<meta>标签设置,还是只能用实际的标头设置?如果没有,是否有可以使用元标记设置的标题列表?

以下示例记录crossOriginIsolated: false到控制台。

如果我删除这些http-equiv元标记并使用实际的 HTTP 标头提供文件,那么它会记录crossOriginIsolated: true(在 Chrome 和 Firefox 中)。所以看起来我不能用元标签设置这些标题?

0 投票
2 回答
269 浏览

reactjs - React 在哪里为 SharedArrayBuffer 设置标头?

我正在 Windows10 的 localhost 上运行使用 create-react-app 创建的网站。当我尝试在我的网站中使用 ffmpeg 时,出现错误

“SharedArrayBuffer 未定义”

在火狐中。为了解决这个问题,我到处都看到我必须在“我的顶级文档”中添加 COOP 和 COEP 标题。

问题是我不明白什么是“顶级文档”以及在哪里可以找到它。

我试图添加:

在我的 index.html 中,正如我在某处看到的那样,但它不起作用。

您能否告诉我,我必须在其中添加标题的文件是什么以及在哪里可以找到它?

0 投票
0 回答
263 浏览

browser - 如何启用跨源隔离?(具体情况)

我正在使用 1and1 (ionos) 托管一个网站,它使用导入的 CSS 和 JS 提供一个 HTML 页面。我试图弄清楚如何启用跨源隔离,但我能找到的是我们需要启用某些响应标头:https ://web.dev/cross-origin-isolation-guide/ 。

具体在这些说明中:

在此处输入图像描述

在顶级文档上设置页眉是什么意思?如何做到这一点?我进行了大量搜索,但没有找到有关如何创建/启用这些响应标头的详细信息。

我需要这样做才能在 Firefox 中使用 SharedArrayBuffer。

0 投票
0 回答
86 浏览

google-chrome - YouTube 嵌入式播放器是否支持在跨源隔离站点中加载?

概括

我的网站需要SharedArrayBuffer支持。因此,我们需要在我们的网站上启用跨域隔离,这将主要在 Chrome 92 开始的 Chrome 上贬值。但是,显然,Youtube 嵌入 URL 似乎不支持启用跨域隔离的站点?

下面附上它提到跨域资源策略未设置并被 YouTube 嵌入文档中的跨域隔离阻止。

跨域

我的问题是它实际上不受支持,还是我缺少一个选项来使 youtube embed 在跨域隔离站点上工作?否则,我需要找出其他一些解决方法。

0 投票
1 回答
328 浏览

javascript - 发出跨源请求时出现 SharedArrayBuffer 错误

我们有一个本地开发环境 ( localhost/),它与远程服务器 ( api-dev.host.com) 上的开发 API 进行通信。

在最新的 Chrome 升级后,尝试从 localhost 与远程服务器通信时出现以下控制台错误:

虽然错误中的链接确实显示了一些信息,但我不清楚如何解决这个问题。有没有办法从后端解决这个问题?任何答案将不胜感激。

0 投票
3 回答
2457 浏览

javascript - 无法从 APi 嵌入图片网址

我一直在学习从 API 中提取配方信息并将其显示在页面上的编码教程。

一切都很好,直到我离开了一会儿又回来了。现在,当我将标记插入页面时,来自提取请求的图像 URL 将无法正确显示。

在控制台中,它显示整个 API 获取请求都通过并且数据在那里,但图像不会嵌入。

我收到此错误:

在此处输入图像描述

这是我正在使用的获取请求和嵌入代码:

获取代码:

嵌入代码模块:

我很感激这方面的任何帮助,因为我一直在努力解决这个问题。

0 投票
0 回答
47 浏览

javascript - 如何防止脚本从另一个目录下载数据?

https://example.com/private/data.json上有一个脚本,它仅将 JSON 返回给已登录的用户
(如果您的会话中有正确的条目,服务器仅返回 JSON)

https://example.com/private/script.js是这个简单的脚本,它下载 data.json 并在控制台中打印它

假设有人将相同的脚本复制到多个位置。例如:

我的问题

  1. 即使您已登录,我也想阻止从https://example.com/private/script.js以外的其他脚本下载 data.json
  2. 服务器应该返回什么标头、Content-Security-Policy、content-policy(或其他任何内容),以便浏览器只能从运行在https://example.com/private/script.js的脚本中列出此 JSON,但可以不在脚本https://example.com/script.jshttps://example.com/anything/script.js中列出它?
0 投票
0 回答
193 浏览

nginx - CORS / 跨域隔离 / Google API

我正在尝试将 Zoom Web Video SDK 集成到现有的 Web 应用程序中,出于性能原因,SharedArrayBuffer 已成为要求,为了启用它,站点必须实施跨源隔离。我已经继续向 NGINX 添加了必要的配置,即:

...但当然,这对以前存在的和工作的其他地方产生了连锁反应。Google API 似乎不会再成功加载。

我更改了 index.html 以将 crossorigin 属性添加到 Google API 脚本标记,如下所示:

...并且在我的javascript源代码中(解释并降低复杂性以达到重点):

在该代码中,gapi 和 gapi.client 定义明确,但 init 调用永远不会完成(没有来自 then 或来自 catch 的控制台日志)。查看 devtools 中的网络选项卡显示失败的 GET 请求:

https://content-classroom.googleapis.com/static/proxy.html?usegapi=1& ...以及其他一些我不确定是否敏感的东西,所以我省略了

当您深入了解响应时,它会显示:

要使用来自不同来源的资源,服务器需要在响应头中指定跨域资源策略:

  • Cross-Origin-Resource-Policy: same-site 如果资源和文档是从同一个站点提供的,则选择此选项。
  • Cross-Origin-Resource-Policy:cross-originOnly 如果包含此资源的任意网站不会造成安全风险,请选择此选项。

显然,我无法控制 Google 的服务器做什么,但任何人都可以指导我如何让它正常工作。这只会在本文开头出现我的 NGINX 配置更改时出现问题。

更新

我通过单独获取 API 的发现文档并将结果传递给 gapi.client.init 方法而不是 URL 来部分解决这个问题。但是,虽然我不再在 devtools 的网络选项卡中得到上述结果,但我得到了奇怪/不一致的结果,响应我的 GoogleAuth.signIn 调用时发生了“popup_closed_by_user”和“popup_closed_by_browser”等响应。如果我从 NGINX 中删除标头,它会再次开始按预期运行。我不明白这是怎么回事。

0 投票
0 回答
630 浏览

javascript - 在跨源隔离站点中使用 Youtube iframe api

我的项目使用多个线程和SharedArrayBuffer。在 Firefox 中,要使用 SharedArrayBuffer,您的站点需要跨源隔离。这也将出现在 chrome 和 edge 上。所以我通过从 node.js 服务器设置这些标头来隔离站点:

这解决了 Firefox 中的问题并删除了 chrome 中的警告,一切都按预期工作。

现在我也在网站上使用youtube iframe api。由于跨源隔离,视频被阻止。它在禁用跨源隔离时起作用。有什么办法让它工作吗?

在此处输入图像描述

youtube 上的这段视频告诉我,我必须设置一个公司标题或其他东西才能让它工作,但我不明白。

0 投票
1 回答
276 浏览

google-chrome - 添加 COEP 标头后,Recaptcha V2 无法正常工作(跨源隔离)

我正在将 SharedArrayBuffer 用于其中一个 webapp 中的一些功能。在 Chrome 版本 92 上,我已按照此处的说明启用跨源隔离,并将以下标题添加到根页面和wasm文件。

之后wasm文件被成功加载。

但现在我无法添加ReCaptchaV2。获取主脚本的第一个请求成功https://www.google.com/recaptcha/api.js...,但随后的 iframe 加载https://www.google.com/recaptcha/api2/anchor...url 被 Chrome 阻止。(原因This resource needs Cross-Origin-Resource-Policy: same-site/cross-origin header:)

暂时避免此问题的一种方法可能是从 Chrome 获取令牌,以SharedBufferArray通过获取试用令牌并使用它来允许使用。参考https://developer.chrome.com/blog/enabling-shared-array-buffer/#origin-trial。但这可能不是一个可扩展的事情,因为我有几个来源要处理。

有没有其他方法可以将 ReCaptcha 与跨源隔离(COEP 标头)一起使用?