什么可能导致特定设备上未返回关联Cookie [英] What could cause a correlation cookie to not be returned on specific devices

查看:10
本文介绍了什么可能导致特定设备上未返回关联Cookie的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有一些用户无法通过Google连接到我们的平台。当发生这种情况时,它总是针对特定的设备,但根据我们目前掌握的信息,它并不都是相同的设备类型(有待确认)。

我们使用的是ASP.NET Core(和Identity Server 4)。

我们这边的错误是,从OAuth流返回时,由ASP.NET Identity设置的关联Cookie消失了。我们已经验证了它在开始时设置得很好,并且是有效的。这不是关于数据保护的问题(我们确实有这一点)。无论我们尝试连接哪个账号,我们都可以在两台装有iOS 12的iPad上复制。所有这些帐户都可以连接到其他设备,包括搭载iOS 13的iPad。

因此,我们正在尝试找出可能导致这些特定设备故障的原因。此外,这似乎是最近才开始发生的,我们无法确定是什么变化引发了我们这方面的变化。

更新1

将iPad从iOS 12更新到iOS 13可解决此问题。

推荐答案

2019/11/19,发布.NET Core v2.2.8。此版本包含此更改,在补丁说明中提到:

风险:中等。众所周知,SameSite的变化与旧版操作系统和浏览器不兼容,尤其是iOS 12和OSX Mojave(最新版本-1)。这些人在网络客户端用户群中只占很小但有影响力的一部分。更新到最新的操作系统版本可解决不兼容问题。

由于我们的Docker镜像基于mcr.microsoft.com/dotnet/core/aspnet:2.2,12月3日发生的无关更新将该更新推送到我们的服务器。

This blog post更详细地说明了情况,但简而言之:

  • set-cookie未指定SameSite值时,Chrome V80将开始默认为lax,而不是默认为None
  • 设置Cookie的SameSite=None时,ASP.NET Core没有将SameSite值发送到set-cookie,假设浏览器默认为None
  • 从v2.2.8开始,ASP.NET Core始终发送SameSite=None
  • iOS 12和MacOS 10.14上的Safari将SameSite=None视为SameSite=Strict(有关详细信息,请参阅this webkit bug)
  • 因此,我们的关联Cookie被视为对这些操作系统是严格的,这意味着它们不会按预期发送回。

虽然我们可以恢复到2.2.7,但即将到来的Chrome更新(80)将停止工作。幸运的是,this article清楚地说明了正确的操作过程:我们需要实现用户代理嗅探,而不是将SameSite=None发送到不支持它的用户代理。This comment提到建议筛选的用户代理,看起来不错。

这篇关于什么可能导致特定设备上未返回关联Cookie的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆