从Chrome 80开始,除非第三方Cookie具有SameSite=None
和Secure
作为属性,否则它们将被阻止。将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,但是担心将来本地存储可能发生类似的变化。
答案 0 :(得分:2)
您的好处是,随着浏览器向保护用户隐私的更强方法迈进,这将改变网站考虑处理数据的方式。网络的可组合/可嵌入性质与该混合内容的隐私/安全问题之间肯定存在紧张关系。我认为,在锁定指纹矢量以防止用户跟踪(通常与站点检测欺诈行为所使用的信号相同)之间的冲突中,目前这已成为人们关注的焦点。一个古老的问题是,如果您出于“良好”的理由而拥有完美的隐私,那意味着所有做“坏”事情的人(例如通过一批被盗的信用卡骑行)也具有完美的隐私。
无论如何,在所有这一切的道德困境之外,我建议您找到一些方法来鼓励用户在需要跟踪与其相关的某种状态时与您的站点/服务建立有意的第一方关系。感觉好像是一个总的来说安全的假设,就像从长远来看,所有存储都将被分区一样,任何形式的跟踪都应经过知情同意。如果这不是前进的方向,那么我仍然认为您会创造更好的体验。
短期内,https://web.dev/samesite-cookie-recipes有一些选择:
您还可以维护第一方Cookie,例如当用户在顶级上下文中访问您的网站时,您可以用来刷新跨站点Cookie的SameSite=Lax
或SameSite=Strict
。例如,如果您提供可提供个性化内容的可嵌入窗口小部件,则在没有Cookie的情况下,您可以在窗口小部件中显示一条消息,该消息将用户链接到原始网站以进行登录。这样,您就可以明确传达其价值允许您在此网站边界范围内对其进行识别的用户。
从长远来看,您可以查看诸如HTTP State Tokens之类的建议,该建议概述了由客户端控制的单个令牌以及明确的跨站点选择加入。还有isLoggedIn
proposal,它与提供一种向浏览器指示使用特定令牌来跟踪用户会话的方式有关。