美文网首页
Safari/Webkit浏览器下,js设置Cookie有效期最

Safari/Webkit浏览器下,js设置Cookie有效期最

作者: xun66 | 来源:发表于2020-04-18 01:31 被阅读0次

    问题描述

    最近发现Safari cookie过期很快,一开始以为是cookie操作脚本有问题,百度了一圈也没发现有类似的问题。研究了很久,同样的操作脚本用Chrome/Edge设置的cookie有效期就是正常的。确定是Safari的问题,于是又去Google搜了一下,发现确实有这回事。

    从2019年上半年开始,iOS 12.2 上的Safari和macOS Mojave系统内置的Safari 12.1均采用了新的ITP2.1(智能跟踪预防)新版本。在这个新策略中,Safari进一步限制了cookie在浏览器上的应用。几个关键点:

    1. Safari将会把大多数的第一方cookie有效期限制为7天。

    2. 两次来访间隔大于7天的用户将为视为不同的用户(因为cookie已经被删了)

    3. 在ITP 2.1中,所有第一方客户端Cookie(通过document.cookie设置而不是在服务器HTTP响应中设置的cookie)有效期限最长均为7天。第三方cookie则更为严格,几乎很难保留。

    4. 如果7日内有访问行为,该cookie有效期是否会自动续期到7日后直到document.cookie设置的期限?当前还不清楚,有待实验验证或进一步查找资料。

    另外,现在ITP已经升级到2.2(见参考资料)。

    解决思路 (未验证)

    1. 文中描述该限制针对的是客户端Cookie,若尝试通过HTTP响应来设置cookie是否会有不同?

    2. 考虑使用浏览器指纹功能?

    3. 考虑要求用户登陆?

    4. 一些欺骗“智能”检测规则的**操作(参考参考资料1)

    参考资料

    1. 知乎文章@螺哥(ericluoge)ITP2.2是个什么鬼

    2. Intelligent Tracking Prevention 2.1

    3. Safari 1st Party Cookies

    相关文章

      网友评论

          本文标题:Safari/Webkit浏览器下,js设置Cookie有效期最

          本文链接:https://www.haomeiwen.com/subject/tegpvhtx.html