在Safari 13中从iframe读取“ Samesite = None; Secure”的Cookie

时间:2020-01-15 15:14:57

标签: cookies iframe safari storage-access-api

我有一个使用Cookie身份验证的iframe。用户登录时,通常在我的域上设置cookie。我使用SameSite = None; Secure。问题是,当第三方网站从我的域嵌入iframe时,我的身份验证Cookie未被传递,因此iframe无法验证用户。

这在Chrome和Firefox上可以正常运行,但在Safari中不起作用(并且直到大约一个月前才可以使用)

我知道带有SameSite = None的Webkit bug,据说是在Safari 13中修复的。我知道Safari不再允许iframe设置第三方Cookie(多年来一直如此,因此我看不到它与最近的更改有何关联)。但是,我并不是要设置cookie-我只是想阅读它。直到最近,这才有可能(请参见this SO question)。

在Safari 13之前,存在一种变通方法,该方法允许人们通过将首页重定向到cookie设置域,然后再返回到原始页面来设置第三方cookie。在这种情况下,iframe可以看到Cookie(再次,因为iframe无法写入,但可以读取Cookie。

我尝试设置一个没有SameSite属性的辅助cookie,因为它们应该可以工作,但仍然无法发送。

无论是否设置了SameSite,Safari现在是否都可以完全丢弃cookie?如果是这样,为什么他们还要麻烦修复SameSite错误?东西没加起来。

更新: 它似乎与Apple的ITP 2有关,该ITP对第三方Cookie设置了严格的标准,甚至根据他们认为可能会进行不良跟踪的域来区分域:https://www.seerinteractive.com/blog/what-is-intelligent-tracking-prevention/

因此,从我一直在收集的内容来看,这些似乎无法绕过这种情况。

更新2: 我想我可能已经在Webkit的Storage Access API中找到了可靠的解决方案:https://webkit.org/blog/8124/introducing-storage-access-api/

0 个答案:

没有答案