tom*_*idt 11 cookies safari iframe storage-access-api
我有一个使用 cookie 身份验证的 iframe。当用户登录时,cookie 在我的域中正常设置。我使用 SameSite=None;Secure。问题是,当第三方网站从我的域中嵌入 iframe 时,我的身份验证 cookie 未通过,因此 iframe 无法对用户进行身份验证。
这在 Chrome 和 Firefox 中工作正常,但在 Safari 中不起作用(它曾经工作到大约一个月前)
我知道SameSite=None的Webkit 错误,据说在 Safari 13 中已修复。我知道 Safari 不再允许 iframe 设置第三方 cookie(多年来一直如此,所以我没有看到它如何与最近的变化相关)。但是,我不是要设置 cookie - 我只是想阅读它。直到最近,这是可能的(请参阅此 SO 问题)。
在 Safari 13 之前,有一种变通方法允许人们通过将首页重定向到 cookie 设置域然后返回原始页面来设置第三方 cookie。在这种情况下,iframe 将能够看到 cookie(因为 iframe 无法写入但可以读取 cookie。
我尝试设置一个没有 SameSite 属性的辅助 cookie,因为这些应该可以工作,但它仍然没有被发送。
无论是否设置了 SameSite,Safari 现在是否会完全丢弃 cookie?如果是这样,他们为什么要费心修复 SameSite 错误?有些东西不加起来。
更新:这似乎与 Apple 的 ITP 2 有关,它对第三方 cookie 设定了严格的标准,甚至根据他们认为可能进行不良跟踪的域来区分域:https : //www.seerinteractive.com/blog/什么是智能跟踪预防/
因此,从我收集的信息来看,这些似乎无法规避这种情况。
更新 2:我想我可能在 Webkit 的存储访问 API 中找到了一个可靠的解决方案:https : //webkit.org/blog/8124/introducing-storage-access-api/
| 归档时间: |
|
| 查看次数: |
8180 次 |
| 最近记录: |