问题标签 [cross-origin-resource-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 投票
0 回答
113 浏览

firebase-authentication - Firebase 身份验证因跨源隔离而中断(即使用跨源资源策略时)

我正在尝试使网站跨源隔离,并在我的网站上启用以下标头:

https://web.dev/cross-origin-isolation-guide/

Firebase 身份验证使用以下调用:

https://<AUTH_DOMAIN>/__/auth/iframe?apiKey=<API_KEY>&appName=[DEFAULT]

如果您使身份验证失败,这将被阻止。

由于您的站点启用了跨域嵌入策略 (COEP),因此每个资源都必须指定合适的跨域资源策略 (CORP)。此行为可防止文档加载未明确授予加载权限的跨域资源。要解决此问题,请将以下内容添加到资源的响应标头: Cross-Origin-Resource-Policy:如果资源和您的站点是从同一个站点提供的,则为相同站点。Cross-Origin-Resource-Policy:如果资源是从您的网站以外的其他位置提供的,则跨域。⚠️如果你设置了这个header,任何网站都可以嵌入这个资源。

如何解决这个问题?似乎根本问题是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 投票
1 回答
121 浏览

docker - 如何使用 Keycloak 配置 CORP?

我得到了以下设置:

https://localhost:1234 -> React 应用程序使用 keycloak-js 和 @react-keycloak/web http://localhost:8080 -> Keycloak (docker)

React 应用程序被配置为使用 keycloak 实例。

如果我尝试访问我的 webapp,我会收到以下网络错误:

我的浏览器阻止了请求,因为cross-origin-resource-policy缺少标头。

如果我在 https://localhost:1234 上托管我的反应应用程序并在https://id.domain.de上使用高效的密钥斗篷,则会出现同样的错误,因此 ssl 似乎没有问题。

如果我在具有不同子域的服务器上使用我的高效密钥斗篷和高效反应应用程序,它确实有效。https://id.domain.dehttps://ui.domain.de)。

任何想法如何解决这一问题?:)

0 投票
0 回答
67 浏览

javascript - 从 iframe 获取父窗口中具有相同来源的所有 iframe

我有一个页面,其中包含来自两个不同域的 iframe,即如下所示

现在假设我在 domain1/page1.html 中有以下 javascript 代码

这将为我提供来自父窗口的所有 iframe(来自域 1 和域 2 的 iframe)。但是,我只想从域 1 中获取 iframe。当我尝试使用以下代码仅从域 1 中过滤 iframe 时

当来自域 1 的 iframe 尝试访问 iframe 域 2 时,我收到安全异常(跨域策略违规)。

我当前的解决方案依赖于 try-catch 块,如下所示

上述解决方案有效,但是否有任何安全的方法可以仅从同一域获取 iframe?或者有更好的方法来过滤来自同一域的 iframe。

0 投票
1 回答
839 浏览

node.js - 指定跨域资源策略以防止资源被阻止

我正在尝试访问我的电影 API,该 API 通过 React 应用程序返回包括电影海报图像在内的数据。正在从外部网站请求此图像。每次我向\movies端点发出请求时,图像都会被阻止,并且我会在控制台中收到以下消息

net::ERR_BLOCKED_BY_RESPONSE.NotSameOriginAfterDefaultedToSameOriginByCoep 200

在“网络”选项卡中查看请求时,我收到以下消息说启用跨域资源策略

我正在使用 CORS npm 模块,该模块以前用于解决我的 Access-Control-Allow-Origin 错误问题。我添加了一些额外的中间件来尝试按照说明添加标题。这是带有该代码的 app.js 服务器

应用程序.js

执行此操作后,控制台会抛出相同的错误,并且仍未设置跨域资源策略。我的方法或文件结构的方式有问题吗?

0 投票
1 回答
74 浏览

reactjs - ReactJS/Springboot- 被 CORS 策略阻止:没有“访问控制允许来源”

我正在使用 Springboot ReactJS 和 MongoDB 开发一个项目。我已经实现了整个代码,但它没有从数据库中导入数据。它显示以下错误。

从源“http://localhost:8081”访问“http://localhost:8080/api/auth/file”处的 XMLHttpRequest 已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头在请求的资源上。

我浏览了通过 StackOverflow 找到的解决方案,并尝试了以下方法来解决这个问题,

  1. 添加@crossorigin
  2. 添加 chrome 扩展
  3. npm 安装 cors

但它仍然不起作用。

如果有人可以帮助我解决这个问题,我会很高兴。

控制器

请求从前端发送

0 投票
2 回答
46 浏览

ajax - Ajax 和 Spring Controller 之间的跨源被阻止

我想要一个 Javascript 函数将数据发送到 Spring 控制器并获得响应。但是,由于 strict-origin-when-cross-origin Referrer 策略,请求不会通过。

弹簧控制器:

Javascript函数:

我知道我必须允许这些文件跨域。到目前为止,我尝试过的东西都不起作用。我尝试过的清单:

-> 添加@CrossOrigin(origins = "http://localhost:8081", maxAge = 3600)到控制器

-> 添加response.setHeader("Access-Control-Allow-Origin", "*");到控制器

-> 添加crossorigin="anonymous"到 Javascript<script>标签

0 投票
1 回答
57 浏览

nginx - 如何阻止其他网页从我的服务器下载媒体?

我有一个网站,图像存储在我自己的服务器上。其他一些网站在其页面上使用指向这些图像的链接,因此服务器必须处理额外的流量。我可以禁止使用 Nginx 配置为外部站点加载图像和其他媒体吗?也许CORS设置可以帮助我?谢谢!

0 投票
1 回答
85 浏览

laravel - Laravel 为 Instagram 资源设置 Cors

当我尝试instagram在我们的 Web 应用程序上显示图像时,我收到此错误:

html标签:

实施和设置后Laravel Cors我再次收到错误,我的Laravel Cors配置是:

我们也在apache2本地使用网络服务器

0 投票
1 回答
36 浏览

api - Flask Api 的跨域问题(Access-Control-Allow-Origin)

你好所有的好人。

我已经测试了我在互联网上可以找到的所有内容,但没有任何方法可以解决这个问题。我真的希望这里有人可以帮助我解决这个问题。

当我尝试从后端向我的烧瓶 API 发出“补丁”请求时,我收到此错误(GET、DELETE 和 PUT 工作正常):

访问从源“https://MYBACKEND-NOTREALURL.com”获取“https://MYAPI-NOTREALURL.com”已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“访问” -Control-Allow-Origin' 标头包含多个值 'https://MYBACKEND-NOTREALURL.com, *',但只允许一个值。让服务器发送带有有效值的标头,或者,如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

这就是我的 API 代码的编写方式:

我已经测试了我在互联网上可以找到的所有内容,但在尝试执行补丁请求时没有任何效果。我正在从弹出窗口获取补丁请求。

您可以在下面查看 javascript 代码。

我真的希望有人可以帮助我解决这个问题而无需重做整个代码?