已加载全部内容

Safari Cookie 政策改变

链接
分类
文章科技2022-12-25 10:00:00
简介

取消了 Cookie 强制 7 天过期。

相似条目

笔记

Beta

本文讨论的第一方 Cookie 指 JavaScript 在第一方上下文中写入的 Cookie。WebKit 取消了其原有的 7 天过期上限,但仍会在网站连续 7 天浏览器使用无交互时被清理。若通过带跟踪能力的域名链接跳转且含查询参数,则仍受 24 小时上限约束。文章对比指出,此类 Cookie 在符合交互条件时,往往比受 IP 子网限制的 HTTP Cookie 更持久。

文章将 IndexedDB 列为脚本可写存储之一,与 LocalStorage 等共同适用 7 天清理规则:若网站在 7 天浏览器使用期间未获用户交互(点击、轻点或键盘输入),数据即被删除。该规则早于 Cookie 变更已存在,本次调整仅将 JavaScript Cookie 纳入同一清理逻辑,以强化跟踪预防。

本文指出 localStorage 属于脚本可写存储,遵循与 IndexedDB 相同的清理策略:在网站连续 7 天浏览器使用无用户交互时被删除。JavaScript Cookie 现已并入该规则,不再单独设置 7 天过期上限。用户需在第一方页面进行真实交互才能重置计时,避免数据丢失。

本文指出,sessionStorage 属于 WebKit 浏览器中脚本可写存储机制之一。若网站在 7 天浏览器使用期内未获得用户点击、轻触或键盘输入等有意义交互,该存储将被删除。JavaScript Cookie 现已纳入同一清理规则,以防止跨站跟踪。

文章说明,Service Worker 注册及缓存属于脚本可写存储。若用户 7 天内未与网站进行有意义的第一方交互,这些数据将被 WebKit 浏览器清除。JavaScript Cookie 的处理已与此机制统一,不再单独设置 7 天到期上限。

文中提到,通过 iframe 使用 Storage Access API 会被视为对网站的有意义交互,可重置 7 天脚本存储删除计时器。该 API 允许嵌入场景下恢复对第一方存储的访问权限。

文章指出,服务器端 Google Tag Manager 设置的 HTTP Cookie 若来自第三方 IP,将受 7 天到期限制,难以维持持久第一方 Cookie。相比之下,JavaScript 设置的 Cookie 在满足用户交互条件下可能更持久。

ITP 2.1 曾对 JavaScript Cookie 设置 7 天过期上限,近期 WebKit 取消该上限,改为与 IndexedDB 等存储统一在 7 天无交互后删除。ITP 2.2 仍保留特定场景下 24 小时上限规则,即当用户从被分类为跟踪能力的域名点击带查询参数或哈希的链接时生效。该机制持续收紧跟踪预防,影响分析工具与广告 Cookie 存活时间。

本文中 WebKit 调整了脚本可写存储的处理规则,取消了 JavaScript 设置的 Cookie 7 天过期上限,转而将其纳入统一清理机制。该机制针对所有 WebKit 浏览器(含 Safari 及 iOS/iPadOS 浏览器应用),当网站在 7 天浏览器使用期间未收到用户交互时,即删除包括 Cookie 在内的所有脚本写入数据。文章指出此举使 JavaScript Cookie 在多数情况下比部分 HTTP 响应头 Cookie 更持久。

Safari 作为 WebKit 浏览器,完全遵循本次变更:JavaScript Cookie 不再受 7 天过期限制,而是与其它脚本存储一起,在网站 7 天无用户交互时被删除。变更同样适用于 iOS 和 iPadOS 上的所有 WebKit 浏览器应用。文章强调用户需在第一方上下文中进行点击、轻点或键盘输入才能重置删除计时器。

该分类暂无内容

本文作者 Simo Ahava 在其博客中分析了 WebKit 近期对 JavaScript Cookie 的策略调整,指出其与 HTTP Cookie 7 天限制的差异,并提醒需定期用户交互才能维持存储有效性。

该分类暂无内容

本文描述,Apple 通过 WebKit 的 Intelligent Tracking Prevention 机制,先对 JavaScript Cookie 设置 7 天到期上限,后改为统一清理所有脚本可写存储。Safari 及 iOS WebKit 浏览器均受此更新影响。