Safari上的跨域Cookie

时间:2020-02-05 02:01:21

标签: ios macos safari session-cookies

在调查(刚刚发布的)Chrome 80 cookie更改(跨域cookie要求SameSite = None)时,我注意到我的一个应用程序中有一些奇怪的行为。特定的应用程序嵌入在另一个站点中-内容位于www.domain1.com中,但是嵌入式应用程序已通过身份验证并从www.domain2.com加载。我们目前使用基于cookie的身份验证。

由于Chrome 80 cookie发生了变化,我们最终在cookie中添加了SameSite = None,以便当我们通过API发出请求时,可以将它们用于身份验证并转移到www.domain2.com。这修复了我们预期的Chrome 80错误,但我们发现Safari在iOS(测试12和13版本)或Mac OS(10.15和10.15版本)中均不起作用。我们将问题缩小为iOS和Mac OS中的默认设置-Safari偏好设置中的“防止跨站点跟踪”复选框。只要选中该复选框,即使设置了SameSite = None,我们的cookie也不会从domain1转移到domain to。似乎这可能会导致许多不同平台出现问题,因为最近大多数站点都希望cookie能够以这种方式进行传输。

这是故意行为,还是我们设置了错误的内容?我已经读过其他有此问题的应用程序,但是除了黑客以外,还没有找到其他解决方案,例如在将内容加载到domain1之前重定向到domain2上的页面,这对我们来说实际上不是一个选择。是否有某种方法可以解决此问题,或者有一种方法可以纠正我们的设置,以便我们实际上可以根据需要传递Cookie?

以下是我们在身份验证期间从API收到的示例Cookie:

"thirdPartyBlocked=1; expires=Tue, 09-Feb-2020 01:59:04 GMT; path=/{our app path}/; Secure; HttpOnly; SameSite=none"

此cookie可以在Safari以外的所有浏览器中正常工作和传输。有什么方法可以解决此问题?

0 个答案:

没有答案
相关问题