如何处理Chrome 80开始的新第三方Cookie规则?

4
从Chrome 80开始,第三方cookie将被阻止,除非它们具有SameSite=NoneSecure属性。使用None作为该属性的新值。这篇文章https://blog.chromium.org/2019/10/developers-get-ready-for-new.html中指出,Firefox和Edge计划在未确定的日期实施这些更改。 这里https://www.chromium.org/updates/same-site/incompatible-clients列出了不兼容的浏览器列表。
如何处理跨浏览器兼容性问题最佳实践是什么?
一个初步的想法是使用本地存储而不是cookie,但担心将来本地存储可能会发生类似的变化。
1个回答

2
你提到了一个很好的观点,随着浏览器向更强大的用户隐私保护方法迈进,这改变了网站处理数据的方式。网页的组合和嵌入性质与混合内容的隐私/安全问题之间肯定存在一些紧张关系。我认为这目前在锁定指纹识别向量以防止用户跟踪方面的冲突中正在变得突出,这些向量通常也是用于检测欺诈的信号。这是一个古老的问题,如果你有了“好”的理由拥有完美的隐私,那么所有做“坏”事情的人(比如循环使用一批被盗信用卡)也会拥有完美的隐私。
总之,在所有这些道德困境之外,我建议在需要跟踪某种与用户相关的状态时,找到鼓励用户与你的网站/服务建立有意义的第一方关系的方法。编写代码时,将所有存储分区化看待,并且任何形式的跟踪都应该经过知情同意,这似乎是一个普遍安全的假设。如果事情不是朝着这个方向发展,那么我仍然认为你会创造出更好的体验。
短期内,https://web.dev/samesite-cookie-recipes 上有一些选项。
  1. 使用两组 cookies,一组带有当前格式的头信息,另一组没有头信息,以覆盖所有浏览器。
  2. 通过嗅探用户代理来向浏览器返回适当的头信息。

您还可以维护第一方 cookie,例如 SameSite=LaxSameSite=Strict,用于在用户在顶级上下文中访问您的站点时刷新跨站点 cookie。例如,如果您提供一个可嵌入的小部件,提供个性化内容,在没有 cookie 的情况下,您可以在小部件中显示一条消息,链接用户到原始站点进行登录。这样,您明确地向用户传达了允许他们在此站点边界上被识别的价值。

从长远来看,您可以查看类似 HTTP State Tokens 的建议,该建议概述了具有显式跨站点选择加入的单个客户端控制令牌。还有 isLoggedIn proposal,它关注提供一种指示浏览器使用特定令牌跟踪用户会话的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接