快速回答: 本地存储是一种基于浏览器的存储机制,类似于cookies,受包括欧盟电子隐私指令和GDPR在内的数据隐私法规的约束。在未获得用户事先、知情和自愿同意的情况下,存储或访问本地存储中的非必要数据即构成合规违规。大多数组织忽视这一点,因为他们的同意管理工具仅针对cookies进行配置,导致本地存储完全未得到管理。
关键要点
- 根据英国和欧盟法律,本地存储在法律上被视为与cookies“类似的技术”,因此适用相同的同意规则。
- 欧洲数据保护委员会(EDPB)已确认,像本地存储这样的技术在存储或访问任何非必要数据之前需要事先、知情和自愿的同意 [2]。
- ICO区分了对服务严格必要的存储和用于跟踪或分析的非必要存储,只有后者需要明确同意 [1]。
- 许多同意管理平台默认管理cookies,但对本地存储未进行监控,造成了显著的合规缺口 [3]。
- 当用于跟踪或分析目的时,SessionStorage与本地存储具有相同的隐私影响。
- 撤回同意要求网站删除在该同意下收集的任何本地存储数据。
- 写入本地存储的第三方脚本也需要同意覆盖,责任在于网站运营者。
- 根据GDPR的合规违规处罚可能是巨大的;当违规行为是系统性的且未披露时,风险会加倍。
什么是本地存储,它是如何工作的
本地存储是现代浏览器内置的Web存储API,允许网站直接在用户设备上存储键值数据对,没有到期日期,通常每个源的限制约为5-10 MB。与cookies不同,本地存储的数据不会随HTTP请求自动发送到服务器,数据会一直保留,直到被网站的JavaScript或用户明确清除。
以下是它在实践中的工作方式:
- 网站的JavaScript调用
localStorage.setItem('key', 'value')来写入数据。 - 该数据在浏览器会话之间保留,直到调用
localStorage.removeItem('key')或localStorage.clear()。 - 只有来自同一源(协议 + 域名 + 端口)的脚本才能读取或写入该数据。
常见用途包括: 存储用户偏好(主题、语言)、会话令牌、分析标识符、购物车内容和A/B测试变体分配。
关键的合规点:因为本地存储在用户设备上存储数据,所以它触发与cookies相同的法律框架,无论该数据是否被传输到服务器 [4]。
根据GDPR,您是否需要用户同意使用本地存储
是的,对于任何非必要使用本地存储,必须在存储或访问数据之前获得明确的用户同意。EDPB已确认,像本地存储这样的技术适用与cookies相同的同意要求,必须事先、知情和自愿地获得同意 [2]。ICO进一步规定,同意必须通过明确、无歧义的行为来确认,而不是通过浏览行为推断或假设用户继续使用网站 [1]。
必要性例外: 如果本地存储仅用于提供用户明确请求的功能,例如在活动会话中保留购物车中的物品,这可能被视为严格必要的存储,不需要同意。然而,如果相同的购物车数据用于分析、重定向或行为分析,则必要性豁免不再适用。
常见错误: 假设因为本地存储数据不随HTTP请求传输,所以它不在隐私法的范围内。法律适用于在用户设备上存储或访问信息的行为,而不是该信息是否被传输。
本地存储与cookies的区别:同意要求
本地存储和cookies在用于非必要目的时都需要同意,但它们在技术行为和合规工具的处理方式上有所不同。
| 特征 | Cookies | 本地存储 |
|---|---|---|
| 到期 | 可配置 | 无(直到被清除) |
| 随HTTP请求发送 | 是 | 否 |
| 服务器端访问 | 是 | 否 |
| 大多数CMP默认覆盖 | 是 | 通常不 [3] |
| 需要同意(非必要) | 是 | 是 |
| 范围 | 每个域/路径 | 每个源 |
实际差距显著:大多数同意管理平台围绕cookie阻止和cookie分类进行架构。本地存储的写入通过JavaScript进行,除非特别配置,否则CMP可能无法拦截。这就是为什么本地存储在雷达下:为什么它也需要明确的用户同意不仅仅是一个理论问题,它是大多数网站的一个活跃合规盲点 [3]。
为什么本地存储需要明确的用户同意
本地存储需要明确的同意,因为它构成了访问或存储用户设备上的信息,这一行为受电子隐私指令(及其国家实施)独立于是否涉及个人数据的监管。法律专家将本地存储归类为与cookies“类似的技术”,根据英国法律,在任何非必要存储发生之前需要事先、知情和自愿的同意 [4]。
其基本逻辑很简单:法律保护用户的设备作为其私人领域的延伸。无论数据是存储在cookie、本地存储、IndexedDB还是服务工作者缓存中,法律触发点是存储行为本身,而不是格式。
有效同意的三个条件(根据ICO指导) [1]:
- 自愿给予,不得将同意与服务条款接受捆绑。
- 具体且知情,用户必须知道存储了什么以及原因。
- 明确无歧义,同意必须来自明确的肯定行为,例如勾选复选框。
本地存储在隐私法下是否被视为跟踪
当本地存储用于识别、分析或监控用户跨会话或页面时,它被视为跟踪。在本地存储中存储分析用户ID、A/B测试分配或行为分段标签在大多数监管解释中构成跟踪,无论该数据是否随后同步到服务器。
这就是本地存储在雷达下:为什么它也需要明确的用户同意的核心,许多开发者将本地存储视为中立的缓存机制,而监管者则将任何持久的设备端标识符视为需要同意的潜在跟踪向量。
您可以在本地存储中存储个人数据吗
从技术上讲,可以,但这样做带来了重大法律风险,通常不建议这样做。存储在本地存储中的个人数据(例如电子邮件地址、设备指纹组件或与个人资料关联的用户ID)需遵守所有GDPR义务:合法依据、数据最小化、保留限制和删除权利 [1]。
本地存储特有的风险:
- 数据会无限期保留,除非明确清除,这使得保留合规变得困难。
- 页面上的任何JavaScript(包括第三方脚本)都可能访问来自同一源的本地存储数据。
- 没有内置加密;以明文存储的敏感数据对任何有设备访问权限的人或通过XSS漏洞可访问。
建议: 避免在本地存储中存储可识别的个人数据。如果存储是必要的,请确保获得同意、数据最小化,并存在明确的删除机制。
本地存储与SessionStorage:隐私影响
SessionStorage在Web存储API中的行为与本地存储相同,但当浏览器标签或窗口关闭时数据会被清除。尽管生命周期较短,但在用于跟踪或分析时,SessionStorage仍需遵循相同的同意要求 [6]。
合规目的的关键区别:
- SessionStorage可能更容易被视为严格必要(例如,在多步骤结账过程中保持状态),因为数据不会在会话之外持久化。
- 本地存储几乎总是需要同意用于跟踪的使用案例,因为其持久性在用户设备上创建了长期标识符。
这两种机制都不在隐私法的固有豁免之内。存储数据的目的和内容决定了同意义务,而不是存储类型本身。
如果您在没有同意的情况下使用本地存储会发生什么
在未获得有效事先同意的情况下,出于非必要目的使用本地存储违反了电子隐私指令,并且在涉及个人数据时违反了GDPR。后果可能包括监管调查、执法行动和声誉损害。
除了监管风险外,还有一个日益增长的技术执行维度:浏览器隐私功能和广告拦截器越来越多地针对基于本地存储的跟踪。依赖未经同意的本地存储进行分析或个性化的网站可能会发现,随着这些工具的普及,他们的数据变得越来越不可靠。
实际暴露检查清单:
- 第三方分析脚本在没有同意覆盖的情况下写入本地存储标识符。
- A/B测试工具在收集同意之前存储变体分配。
- 聊天小部件或支持工具在页面加载时初始化本地存储,而没有任何用户交互。
- 重定向像素使用本地存储作为cookie同步的后备。
如何在您的网站上实施本地存储同意
实施本地存储同意需要一个能够阻止JavaScript执行的同意管理平台,而不仅仅是设置cookie,直到用户做出有效的同意选择。仅在HTTP层操作的标准cookie横幅将无法拦截由JavaScript进行的本地存储写入 [3]。
逐步实施方法:
- 审核您的本地存储使用情况。 使用浏览器开发者工具(应用程序选项卡)和脚本扫描器识别写入本地存储的每个键,哪个脚本写入它,以及目的是什么。
- 对每个用途进行分类。 将存储分类为严格必要、功能性、分析或营销。只有严格必要的存储可以在没有同意的情况下进行。
- 选择一个覆盖本地存储的CMP。 确保您的同意管理平台能够阻止或推迟非必要脚本的JavaScript执行,直到获得同意。Biscotti CMP旨在处理这种级别的脚本级同意管理。
- 实施同意门控脚本加载。 只有在用户接受相关同意类别后,才应加载写入本地存储的非必要脚本。
- 提供明确的同意用户界面。 同意横幅必须用简单的语言描述本地存储的使用,按目的分类,并提供细化的选择。
- 实施撤回和删除机制。 当用户撤回同意时,相关的本地存储键必须立即被清除。
用户撤回同意后如何删除本地存储数据
当用户撤回同意时,网站必须及时删除在该同意下收集的任何本地存储数据。这不是可选的,撤回同意并要求删除相关数据的权利是GDPR的核心原则。
实施模式: