【发布时间】:2023-02-03 14:14:51
【问题描述】:
我们有一个跨平台应用程序,它在 127.0.0.1 上的随机端口上运行 Web 服务器。服务器代码在每个平台上都是相同的。
为了对请求进行身份验证,在初始响应中设置了一个会话 cookie。该 cookie 设置了 HttpOnly 和 SameSite=Strict 以提高安全性。
就在本周,我们发现在大多数 Android 浏览器的当前版本(Chrome 109.0.5414.85、Chrome Beta 110.0.5481.40、Firefox 109.1.1、Edge 109.0.1518.53)中,身份验证失败。使用 Chrome 开发工具,我可以看到 cookie 没有在请求中发送,尽管它在 cookie 存储中。如果我使用开发工具手动将 SameSite=Strict 更改为 SameSite=Lax(不受欢迎),则会发送 cookie,一切都会开始正常工作。
Opera (73.1.3844.69816) 不受影响,在测试平板电脑上升级之前的 Chrome 也不受影响(可能是 100 之前的版本)。我无法在 Chrome 中找到任何相关的最新更改。
令人费解的是,这个问题在 Windows 或 iOS 上都不存在(Mac 尚未测试);在 Chrome、Firefox 和 Edge 的 109.x 版本下,在 Windows 上使用该应用程序没有问题。
如果这是一个浏览器策略问题(尽管这是一个同源请求),我希望它能跨平台运行。如果这是浏览器错误,我不认为 Chrome 和 Firefox 都会受到影响。
我错过了什么?
【问题讨论】:
标签: android http cookies samesite