我公司的网站(mercury.co)通过电子邮件将密码重置链接发送给用户。我们遇到了一些非常奇怪的行为,这些行为只能在与SameSite Lax属性相关的Gmail iOS应用中重现:
这将导致下一个POST请求失败,因为它无法将CSRF令牌发送到服务器。不过,如果您查看请求中发送的cookie,它会包含其中包含CSRF令牌的cookie。
我的理解是cookie应该是可读的,因为在这种情况下它不是跨站点的。而且它当然不应该不可读,然后在下一个请求时发送到服务器。
我的理解是SameSite Lax cookie不应阻止客户端读取此cookie。
作为修复,我们确定在此特定cookie上不需要SameSite Lax属性。但是,我们仍然想了解此问题的根本原因。
一些到目前为止详细介绍了我们的调查:
答案 0 :(得分:1)
您大多回答了自己的问题(并向我指出了正确的方向:-))。 为了完整起见,我发现了相关的错误:Safari (still) doesn't send Lax cookies after a cross-site redirection。
这是fixed in release 77,这说明了为什么该错误在iOS 12.3.1中没有发生。
答案 1 :(得分:0)
事实证明,这肯定是iOS 12.2中的错误,因为我无法再在iOS 12.3.1中重现此行为。但是,我找不到足够详细的iOS更新日志来显示此修复程序,并且在Webkit changelog中没有发现任何相关内容。