问题标签 [sec-fetch-site]

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 回答
15944 浏览

google-chrome - Sec-Fetch-Mode 和阻塞的 CORS

所以我有同一个网站从不同的网络和计算机向 (1) Chrome 76 和 (2) Chrome 77 上的同一服务器发出相同的请求。

一个请求具有 (1)Sec-Fetch-Mode: no-cors, Sec-Fetch-Site: cross-site和另一个 (2) Sec-Fetch-Mode: cors, Sec-Fetch-Site: same-site。一个no-cors失败,一个 400 到启用 CORS 的 C# Web API 端点(多年和各种设备上的数千个不同用户)。

到底是怎么回事?有人说 Chrome错误没有发送该标头进行飞行前,但它存在并设置为no-cors.

Chrome 中的安全设置或错误?可修复的服务器端还是前端?

这是由 XMLHttpRequest 发送的,而不是新的 Fetch-API。

0 投票
1 回答
1971 浏览

php - 拒绝来自 Opera 地址栏的服务器端(PHP 或 Apache)的 Fetch API 请求

几天前新的 Opera 65 出现了地址栏重新设计,我注意到我的网页上有一个问题。在栏中键入或复制地址时,Opera 会向服务器发送请求,但是,我无法在 PHP 中捕获请求,看起来,Fetch API 是在后台使用的。

有没有办法拒绝或阻止PHP 7 或 Apache 2.4 中的 Fetch API 请求?换句话说,在输入/复制时阻止 Opera 在服务器端产生的请求(首选 PHP)?

特别是,我需要排除在查询中提供带有哈希键的操作的 GET 请求(下面的示例中的测试)。当地址被复制(例如从邮件)到地址栏时,Opera“在后台”发送请求,请求被执行,但是在通过 Enter 提交地址后,第二个请求返回错误,因为禁止操作(哈希密钥不再有效)。

来自 Apache 日志:

来自 Wireshark(请求之一):

使用的技术:PHP 7.3.7、Apache/2.4.39

0 投票
1 回答
468 浏览

javascript - 当 sec-fetch-site 是跨站点时如何在 Chrome 中获取完整的引用 URL

我有一个由客户团队管理的客户网站,点击登录后它会进入我们管理的网站。到目前为止,我们一直在从请求标头中提取引荐来源网址并使用它来采取进一步的行动,但目前由于 Chrome 浏览器和 Edge 浏览器政策的一些变化,我们无法获得完整的引荐来源网址。它在 Firefox 和 Internet Explorer 中运行良好。这可能是因为浏览器策略限制了在 sec-fetch-site 是跨站点时发送的完整引用 URL。请帮助我使用一些简单的代码级方法(Java/JSP/Javascript)来提取完整​​的 URL。我尝试探索几个链接,但没有一个帮助我解决这个问题。

0 投票
2 回答
11632 浏览

http-headers - sec-fetch-site 标头是什么意思?为什么 Origin 标头未定义?

我有一个API从我的 React 应用程序调用的端点。那API是在同一个域上。就像是:

cross-fetch用来做那个请求。

我期待在我的服务器日志上看到一个Origin标题。事实上,我期待看到Origin: https://www.example.com

但这是我得到的:

他们的意思是什么?好像Origin支票已经办好了?

例如:如果我得到sec-fetch-site: cross-site这意味着呼叫是在另一个网站/域中生成的?那是对的吗?

参考:

0 投票
1 回答
1802 浏览

http - 请求标头中的 Sec-Fetch-Mode、Sec-Fetch-Dest、Sec-Fetch-Site 创建 CORS 问题

在我使用 axios 从我的网站请求的后端端点上,大多数浏览器没有在请求标头上设置“sec-fetch-mode”和“sec-fetch-site”,它们似乎工作正常。
但是,很少有浏览器设置标头sec-fetch-mode:cors,sec-fetch-dest: emptysec-fetch-site:same-site, 在这种情况下连接关闭并且浏览器控制台显示以下错误。

后端有以下配置:

有没有办法从前端或后端的代码中控制这些标头?

0 投票
1 回答
75 浏览

php - Laravel 中的 request() 为空

我有一个简单的 Laravel 应用程序,其中第三方从外部源重定向到路由。

这个外部站点点击了一个非常简单的注销控制器/saml/logout

这是我可以看到的痕迹:

在此处输入图像描述

因此,根据这个跟踪器,它能够点击 URL 并获得 200 的 HTTP 状态。

在此处输入图像描述

但是,在我的日志中,我得到以下信息。

在此处输入图像描述


我的问题是,为什么我的日志中没有关于请求的任何信息?

我能看到的唯一有点奇怪的是,所谓的东西Sec-Fetch-Dest被设置为 iframe。

更新给出了答案。

使用$request->all()没有给我任何东西。

在此处输入图像描述

进一步更新

在此处输入图像描述