如何防止 Safari 在遵循同源重定向时删除授权标头?

2024-04-17

Safari 似乎放弃了Authorization遵循同源 301 重定向时的标头。例如这段JS代码:

fetch("/api/endpoint-that-redirects", { headers: new Headers({ "Authorization": "sometoken" })})

会触发一个GET to /api/endpoint-that-redirectsAuthorization标头,其响应为301带位置/api/endpoint。浏览器会自动遵循此操作,这意味着它会再次进行 GET 操作/api/endpoint,但这一次without the Authorization header.

重定向到时这似乎是预期的行为不同的起源,但我不明白如果重定向到同源的另一个 URL,为什么会发生这种情况。

我在 StackOverflow 上看到了很多关于此行为的在线帖子和问题,但我还没有看到任何明确的解决方案,或者至少没有看到关于此行为的解释。也不清楚其他问题 https://stackoverflow.com/q/57974176/458968如果重定向到同一主机。

Chrome (98) 和 Firefox (97) 都遵循重定向并包含Authorization后续 GET 请求中的标头。


Safari 15.4+(iOS 15.4、macOS 12.3)用户将不再遇到此问题Authorization drop.

详细信息:实际上解决了这个问题早在 2021 年 10 月就合并到了 WebKit/Safari 代码中 https://github.com/WebKit/WebKit/commit/8cfdff34446111a6798d0cbcff494322fd14dd69但根据评论https://bugs.webkit.org/show_bug.cgi?id=230935#c18 https://bugs.webkit.org/show_bug.cgi?id=230935#c18直到 2022 年 3 月中旬,Safari 15.4 才最终发布。

因此,对于 15.4 之前的 Safari 版本的任何用户(尚未升级到 iOS 15.4 或 macOS 12.3 的用户),此问题将继续发生,但对于当前使用 Safari/iOS/macOS 的用户而言,不会出现此问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何防止 Safari 在遵循同源重定向时删除授权标头? 的相关文章

  • Http PUT 请求到 jpeg

    我收到了如下 HTTP PUT PUT photo HTTP 1 1 X Apple AssetKey F92F9B91 954E 4D63 BB9A EEC771ADE6E8 X Apple Transition Dissolve Con
  • Safari - 视频加载速度太慢

    我在将视频添加到我的网站时遇到了一些麻烦 我使用这段代码
  • 移动网站可以进行生物识别吗?

    我有移动网站 在这个应用程序中我想使用设备的本机PIN Faceid and Fingerprint身份验证 这实际上可能吗 因为我认为浏览器不会允许我这样做 我还听说 如果我想要这种行为 我应该创建 PWA 渐进式网络应用程序 那么 从浏
  • IIS7 和 HTTP 状态代码处理

    我因试图对 IIS7 集成模式 中的错误呈现进行完整的编程控制而感到非常头疼 我想要做的是给出一个错误 找不到页面 内部服务器错误 未经过身份验证等 将整个请求传输到自定义 ASPX 或 HTML 我更喜欢后者 并使用正确的 HTTP 状态
  • 使用 Servlet 启动 VLC HTTP Stream 时出现问题

    我正在为自己开发一个 VLC 项目 我的目标是创建一个 HTML 前端来启动流 我通过使用 Java Servlet 来完成此操作 概述 乌班图13 04 Java 7 21 冰茶 2 3 9 Eclipse JAVAEE IDE 雄猫7
  • 当您在 iPad 上的 Safari 浏览器中触摸 HTML 元素时,它会变成灰色。决定嵌套元素中哪个元素显示为灰色的逻辑是什么?

    当您触摸 iPad 上网页中的某个元素 例如编辑框 时 它会在您触摸时变成灰色 我有一张由浮动 div 包裹的桌子 当触摸数据元素时 整个表 或其包装 div 不会变灰 而不是单个数据元素或行变灰 该表的功能是自动补全弹窗 在网站的其他地方
  • REST DELETE 真的是幂等的吗?

    DELETE 应该是幂等的 如果我删除http example com account 123 http example com account 123它将删除该帐户 如果我再次这样做 我会收到 404 错误吗 因为该帐户已不存在 如果我尝
  • 如何从一个端口为 Jetty 提供 https 和 http 服务?

    我知道这是一个重复的问题 但原始发帖者提出这个问题的原因是错误的 我并不是暗示我问它是为了right原因 但让我们看看 我们有一个在非标准端口号上运行的 Web 服务 尽管用户似乎能够记住端口号 但有时他们会错误地输入 http 而不是 h
  • iOS safari 输入插入符号颜色

    我在 iPhone 设备上使用 Safari 时遇到了一个 CSS 小问题 我的搜索输入是蓝色的 当用户关注它时 插入符号几乎看不见 在所有桌面浏览器中 它都有正确的颜色 白色 即使在桌面 Safari 上也是如此 知道如何修复此问题并更改
  • 如何修复 iOS 11 和 macOS V10.12 Safari 上损坏的变换原点?

    我正在尝试使用 svg 来实现 CSS 动画 我期望 2 个 svg 盒子正在旋转 旋转 transform origin center center 360度 看起来它在 Chrome 和 Firefox 上的表现符合我的预期 但在 ma
  • JPEG 颜色在不同浏览器中呈现不一致

    我正在使用的徽标在不同浏览器中的呈现方式有所不同 具体图片可查here https pbs twimg com profile images 741262755236356096 BqpBjB8R jpg and on 这个推特页面 htt
  • 使用 javascript 在网络浏览器中 Ungzip csv 文件

    我想从网络服务器下载 gzip 压缩的 csv 文件 然后在浏览器中解压 到目前为止我已经尝试使用pako and zlib将文件压缩到我的服务器上 但遇到了各种问题 尝试解压缩 unix gzipped 文件时 我不断收到错误的标头消息
  • 针对 REST API 的授权会引发错误:401(未找到请求的凭据。)

    我想针对 HP Alm Rest API 进行授权 我认为这 应该 有效 但事实并非如此 function performSignIn let headers new Headers headers append Content Type
  • 如何在 suave webpart 中设置 Json 响应

    我从 Suave 和 F 开始 我正在尝试在我的 web 部件中传递一个 json 序列化对象以在我的响应中获取它 在 php 中我有这个 player1Key hdegftzj25 gameKey aegfhzkfszl
  • 无法更改 php 会话 cookie 名称

    我将现有且成功运行的站点复制到新的开发服务器 新服务器上的登录现在已损坏 我追踪到虽然会话 cookie 已重命名 ini set session name DOMAIN1 浏览器继续将会话 cookie 存储为 PHPSESSID 当我从
  • jquery是如何实现$(document).ready()的?

    jquery是如何实现的 document ready 当然我可以阅读代码 但我正在寻找这个概念 概念 jQuery ready http api jquery com ready 虽然 JavaScript 提供了在渲染页面时执行代码的
  • Safari 不设置 cookie,但 Chrome 和 Firefox 会设置

    我正在将请求从本地主机发送到第三方服务器以使用 REST API 获取数据 后端使用cookies JSESSIONID 来了解是否发送数据 在 Chrome 中一切正常 我可以在 Chrome 浏览器的 应用程序 选项卡中看到 Cooki
  • Google 地图视图无法在模拟器上显示

    您好 我正在尝试在 Android 模拟器中显示地图 但它无法在地图视图中显示谷歌地图 并且也不从 Android 模拟器上的浏览器连接 www google com 那么是否有关于在模拟器上运行互联网的任何设置 谁能帮我解决这个问题 尝试
  • 使用 php 和 jquery 的简单彗星示例

    谁能给我一个使用 PHP 的彗星技术的简单好例子 我只需要一个使用持久 HTTP 连接或类似连接的示例 我不想使用轮询技术 因为我已经设置了类似的东西 并且不仅难以使用和管理它的大量资源 另外我使用的是 IIS7 而不是 Apache 一个
  • 在获得响应之前发出多个请求

    当并行发送多个请求时 在获得响应之前 我无法理解 HTTP 的工作原理 有两种情况 1 With Connection Keep Alive 根据HTTP规范 http www w3 org Protocols rfc2616 rfc261

随机推荐