问题标签 [cross-origin-opener-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 投票
3 回答
653 浏览

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

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

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

谢谢。达里奥。

0 投票
1 回答
197 浏览

next.js - 有没有办法使用 Google Adsense 进行跨源隔离?

我正在开发一个使用依赖的网站SharedArrayBuffer,要使用SharedArrayBuffer您的网站需要跨源隔离,这意味着您的服务器响应需要包含以下标头:

我正在使用 next.js 并且标头似乎正在工作,因为我可以使用crossOriginIsolated全局变量检查跨源隔离。

似乎它正在破坏 Google Adsense,因为它给了我这些错误。

有任何想法吗?

提前致谢。

0 投票
0 回答
47 浏览

firebase - 跨域隔离模式下的 Firebase 身份验证?

我正在开发一个 Web 应用程序,它使用 Emscripten 的多线程 WASM 运行计算密集型代码,因此需要 SharedArrayBuffers。仅当我的应用程序处于跨源隔离模式时才有效。为了实现这一点,我必须在我的应用程序上设置以下标题:

现在,我想在我的项目中使用 Firebase - 第一步是集成 Firebase 的 Auth。现在,我正在使用它firebaseui来处理登录流程。不幸的是,这不起作用,当我在浏览器中启动登录流程时,我可以在 DevTools 中看到以下消息:

开发工具错误

在此处输入图像描述

除了网络选项卡中的错误之外,我没有任何迹象表明发生了错误(即没有未捕获的异常)。没有 COOP/COEP 标头,一切正常。

有没有办法可以在跨域隔离模式下使用 Firebase 的身份验证?

0 投票
1 回答
281 浏览

webassembly - 是否可以在普通页面中嵌入跨域隔离的 iframe?

换句话说,如果我不能sharedArrayBuffer在我的主站点中使用,我可以打开一个 iframe 并sharedArrayBuffer在 iframe 内使用吗?

2021 年 3 月有人问过类似的问题,当时接受的答案是“否”。但是,最近的google blogpost似乎暗示并非如此,所以我想再问一次。

所以我想在我的站点中使用一些带有 sharedArrayBuffer 的 wasm,但是让它跨域隔离是不切实际的,所以我创建了另一个站点https://my-wasm-function.app,它跨域隔离的。我希望将其用作 iframe,并通过postMessage.

但是,我发现一旦它作为 iframe 嵌入,它就会失去隔离状态。

博文有一些关于如何隔离 iframe 的模糊说明,一个是添加标题(我认为是在andCross-Origin-Resource-Policy: cross-origin之上),我试过了,没有用。另一种是像这样打开iframe:,我也试过了,也没有用。COOPCOEP<iframe allow="cross-origin-isolated">

0 投票
0 回答
42 浏览

sharedarraybuffer - 什么是顶级文件?(未定义 sharedArrayBuffer )

我打算用sharedArrayBuffer. 我发现如果没有建立交叉隔离,就无法使用。

在文档中, Cross-Origin-Opener-Policy: same-originCross-Origin-Embedder-Policy: require-corp 都应该在顶级文档中设置,但不知道顶级文档是什么以及如何设置。

我应该怎么办?

0 投票
0 回答
75 浏览

sandbox - Chrome 扩展沙盒 iFrame 中的 SharedArrayBuffer

我试图SharedArrayBuffer通过设置一个跨域隔离的文档来使用。但是,由于它位于 Google Chrome 扩展程序中并且我需要 WebAssembly,因此我需要在沙盒页面中运行它。

我有一个沙盒页面,在 manifest.json 中定义为这样

而且我还使用 COOP 和 COEP 启用了跨域隔离。

除了使用这个sandbox.html脚本之外什么都不做:

然后我有一个outer.html嵌入sandbox.htmliFrame 的页面。

当我打开时outer.html,我收到消息“BAD am not crossOriginIso”,即sandbox.htmliFrame 内的文档不是跨域隔离的(我不能使用SharedArrayBuffer)。

有没有办法在内部文档被沙盒化的 iFrame 中使用清单 v3 在 Chrome 扩展中启用跨域隔离(通过manifest.json)。

也许更具体地说,如何featurePolicy.allowedFeatures()向沙盒 iFrame 添加更多内容(它是在 Chrome 扩展程序的沙盒中manifest.json,而不是sandbox属性)。

我注意到以下几点:

  • 没有iFrame直接打开sandbox.html,页面是跨域隔离的。
  • 删除该sandbox属性会manifest.json导致 iframe 内的文档被跨域隔离。
  • 在 iFrame 内执行document.featurePolicy.allowedFeatures()会提供非常小的功能列表(并且不包括cross-origin-isolated)。这个列表比sandbox.html直接打开时执行相同的命令要小很多。
0 投票
1 回答
46 浏览

webassembly - 将 SharedArrayBuffer 与第三方 JS 一起使用时遇到问题

我添加了响应头(“Cross-Origin-Opener-Policy”、“same-origin”)以使用 SharedArrayBuffer(以支持 webassembly)。但是现在我在我的页面中添加第三方 JS 时遇到了麻烦,这将被跨域隔离所阻止。将第三方 JS 与 webassembly 一起使用的任何解决方法?

0 投票
0 回答
27 浏览

javascript - 使用 Cross-Origin-Opener-Policy 使 window.close 在 Firefox 上工作:same-origin

我有一个 SiteA,它在弹出窗口中打开 SiteB,SiteB 重定向回具有window.close. SiteB 已Cross-Origin-Opener-Policy: same-origin设置。问题是 window.close 在 Firefox 中不起作用(在 Chrome 中起作用)。

流程是这样的:

站点A/1.html ->var openedWindow = window.open(SiteA/2.html)

-> SiteA/2.html 重定向到 SiteB

-> SiteB 有Cross-Origin-Opener-Policy: same-origin

-> SiteB 重定向到 SiteA/3.html(仍在弹出窗口中)

-> 站点A/3.html ->window.close()

cross-origin如果 SiteB 中的 Cross-Origin-Opener-Policy 设置为或完全删除,这仅适用于 Firefox 。

我尝试在 3.html 中代替 window.close,openedWindow.close在 1.html 中使用,但这也没有用。

我尝试了 window.open('','_parent','') 技巧,但也没有用。

有没有办法做到这一点?

0 投票
1 回答
31 浏览

java - 来自邮递员的发布请求的跨源问题

我正在编写一个具有跨源配置的 API

我的网络安全配置有

控制器类

我正在尝试满足我的邮递员的请求,如下所示

在此处输入图像描述

身份验证过滤器检查

Matcher.match 总是假的

我错过了什么吗?

我添加了任何额外的参数吗?

期待快速响应。

0 投票
1 回答
63 浏览

http - CORP 使用 CSP 沙箱集阻止明显同源请求

想象一个有两个文档的站点:index.htmltest.jpg,都位于根目录。index.html有以下内容。

如果没有安全标头,这工作得很好。但是,使用这些标题index.html

这个标题在test.jpg

test.jpgChrome 98 将不再加载它。它net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin 200在控制台中报告。

添加以下标头index.html将导致图像也被 Firefox 97 阻止:

(我知道这是很多指令,但我试图将它们一分为二,但无法弄清楚。)

What is happening here? https://example.com and https://example.com/test.jpg are the same origin, aren't they? Explicitly navigating to https://example.com/index.html also blocks the loading of test.jpg. What is missing from my understanding of same-origin? Why is there a difference between Chrome and Firefox's handling? Why does adding CSP cause Firefox to start blocking the requests for test.jpg?

In case I missed something, here are the complete set of headers for each request (from cURL):