关于 eprivacy-essential-cookies
eprivacy-essential-cookies 是帮助隐私团队判断 Cookie 是否适用 ePrivacy Directive 同意豁免的分类指南。它以用户明确请求的服务和严格必要性为核心,并提供类别示例与边界情形。
主要功能
- 01应用严格必要性双项测试
- 02按指南识别可豁免类别
- 03区分分析与广告 Cookie
- 04评估边界情形
- 05记录豁免分类依据
适用场景
- 01评估购物车与登录 Cookie 是否豁免
- 02审查持久偏好 Cookie 的同意要求
- 03记录 Cookie 豁免的合规理由
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill eprivacy-essential-cookies安装后在 Claude Code 中输入/eprivacy-essential-cookies确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py详细介绍
ePrivacy 指令第 5(3) 条基本 Cookie 豁免
概述
《ePrivacy 指令》(2002/58/EC,经指令 2009/136/EC 修订)第 5(3) 条要求,在用户的终端设备上存储或访问信息(Cookie、LocalStorage、设备指纹)前,必须获得知情同意。不过,对于「信息社会服务提供商为向订户或用户提供其明确请求的服务而严格必要」的存储行为,该条款规定了豁免。正确判断 Cookie 是否符合此豁免至关重要——过度主张豁免会使组织面临执法行动,而主张不足则会造成不必要的同意阻碍。第 29 条工作组关于 Cookie 同意豁免的第 04/2012 号意见(WP 194)仍是适用此豁免的权威指南。
豁免标准
两部分测试
只有在同时满足以下两个条件时,Cookie 才符合严格必要豁免:
条件 1 — Cookie 严格必要 Cookie 必须是用户主动请求的特定功能所必需的。「严格必要」意味着没有它,服务就无法运行——而不仅仅是服务质量下降或使用不便。
条件 2 — 用于用户明确请求的服务 用户必须主动请求 Cookie 所支持的服务。Cookie 必须服务于用户的目的,而非网站运营者的目的。对于运营者的商业模式(例如分析)而言必要、但对于用户请求的服务(例如查看产品)并非必要的 Cookie,不符合豁免条件。
第 29 条工作组的豁免类别
WP 194(第 04/2012 号意见)指出了可能符合豁免条件的特定 Cookie 类别:
类别 A — 用户输入 Cookie(仅限会话)
| 标准 | 要求 |
|---|---|
| 用途 | 在多步骤流程中跟踪用户输入(例如填写表单、购物车) |
| 时长 | 仅限会话(浏览器关闭时删除)或短时有效(最长几小时) |
| 范围 | 仅限第一方 |
| 示例 | 浏览会话期间的购物车内容 |
Pinnacle E-Commerce Ltd 示例:
| Cookie | 用途 | 时长 | 豁免 |
|---|---|---|---|
| cart_session | 在会话期间存储添加到购物车的商品 | 会话 | 是 |
| checkout_step | 跟踪多页结账流程的当前步骤 | 会话 | 是 |
| form_data_temp | 结账期间页面重新加载时保留表单输入 | 30 分钟 | 是 |
类别 B — 身份验证 Cookie
| 标准 | 要求 |
|---|---|
| 用途 | 对用户进行身份验证,以便提供对已验证内容/服务的访问权限 |
| 时长 | 会话身份验证仅限会话;只有用户明确选择「记住我」时才可持久保存 |
| 范围 | 仅限第一方 |
| 示例 | 登录后生成的会话令牌 |
Pinnacle E-Commerce Ltd 示例:
| Cookie | 用途 | 时长 | 豁免 |
|---|---|---|---|
| auth_token | 对已登录用户进行身份验证 | 会话 | 是 |
| refresh_token | 在浏览器重启后维持身份验证(选择「记住我」时) | 30 天 | 是 — 用户明确请求持久登录 |
| session_id | 将请求关联到服务器端会话 | 会话 | 是 |
类别 C — 用户安全 Cookie
| 标准 | 要求 |
|---|---|
| 用途 | 确保用户明确请求的服务安全 |
| 时长 | 仅限必要时长 |
| 范围 | 仅限第一方 |
| 示例 | CSRF 防护、检测重复登录失败尝试 |
Pinnacle E-Commerce Ltd 示例:
| Cookie | 用途 | 时长 | 是否豁免 |
|---|---|---|---|
| csrf_token | 防止跨站请求伪造攻击 | 会话 | 是 |
| login_attempts | 记录登录失败次数,以防止暴力破解 | 30 分钟 | 是 |
| device_verified | 在完成双重身份验证后将设备标记为已验证 | 30 天 | 是 — 用于已认证服务的安全保障 |
类别 D — 多媒体播放器会话 Cookie
| 标准 | 要求 |
|---|---|
| 用途 | 存储媒体播放的技术数据(画质设置、缓冲) |
| 时长 | 仅限会话 |
| 范围 | 仅限第一方 |
| 示例 | 当前会话的视频播放器画质偏好 |
类别 E — 负载均衡 Cookie
| 标准 | 要求 |
|---|---|
| 用途 | 将 Web 流量分配到多台服务器 |
| 时长 | 仅限会话(仅在浏览会话期间保留) |
| 范围 | 仅限第一方 |
| 示例 | 负载均衡器会话亲和性 Cookie |
Pinnacle E-Commerce Ltd 示例:
| Cookie | 用途 | 时长 | 是否豁免 |
|---|---|---|---|
| SERVERID | HAProxy 服务器亲和性 Cookie | 会话 | 是 |
| __cfduid (legacy) | Cloudflare 服务器标识 | 会话 | 是 — 仅限会话时 |
| lb_route | 内部负载均衡器路由 | 会话 | 是 |
类别 F — UI 自定义 Cookie(仅限会话)
| 标准 | 要求 |
|---|---|
| 用途 | 存储用户在会话期间明确设置的用户界面偏好 |
| 时长 | 仅限会话(会话期间首次访问);持久化 Cookie 需要征得同意 |
| 范围 | 仅限第一方 |
| 示例 | 在会话期间选择语言 |
关键区别: 用户点击语言选择器时,为当前会话设置的语言偏好 Cookie 可豁免。会记住用户选择并在多次访问之间保留的持久性语言偏好 Cookie 通常需要征得同意(其范围超出了会话)。
Pinnacle E-Commerce Ltd 示例:
| Cookie | 用途 | 时长 | 是否豁免 |
|---|---|---|---|
| locale_session | 当前会话期间选择的语言 | 会话 | 是 |
| locale | 持久性语言偏好 | 1 年 | 否 — 需要征得同意 |
| currency_session | 当前会话期间选择的货币 | 会话 | 是 |
| currency | 持久性货币偏好 | 1 年 | 否 — 需要征得同意 |
不豁免的 Cookie 类别
以下 Cookie 类型明确不予豁免,始终需要征得同意:
分析与性能 Cookie
| Cookie 类型 | 不予豁免的原因 |
|---|---|
| Google Analytics (_ga, _gid) | 服务于运营方的分析目的,而非用户请求的服务 |
| Hotjar (_hj*) | 会话录制和热力图服务于运营方 |
| A/B 测试 (optimizely_*) | 实验服务于运营方的优化目标 |
| 性能监控 | 网站性能监控有利于运营方 |
注意: CNIL 为受众衡量设立了单独的有限豁免(参见 analytics-cookie-consent 技能),但这是针对法国的解释,并非《电子隐私指令》第 5(3) 条规定的普遍豁免。
广告与定向 Cookie
| Cookie 类型 | 不予豁免的原因 |
|---|---|
| Meta Pixel (_fbp, _fbc) | 广告跟踪服务于广告商 |
| Google Ads (_gcl_au, IDE) | 转化跟踪和再营销服务于广告商 |
| 再定向 Cookie | 跨站跟踪用于广告个性化 |
| 广告频次上限 | 服务于广告投放系统,而非用户 |
社交媒体插件 Cookie
| Cookie 类型 | 不予豁免的原因 |
|---|---|
| Facebook Like 按钮 Cookie | 通过社交组件进行第三方跟踪 |
| Twitter 分享组件 Cookie | 第三方数据收集 |
| YouTube 嵌入式视频 Cookie | 通过嵌入式视频进行 Google 跟踪 |
| LinkedIn Insight Tag | 职业社交网络跟踪 |
**例外:**如果用户明确请求使用社交账号登录(例如“使用 Google 登录”),该登录流程的身份验证 Cookie 可能符合 B 类条件。社交平台的跟踪 Cookie 不符合条件。
持久化偏好 Cookie
| Cookie 类型 | 不予豁免的原因 |
|---|---|
| 持久化语言偏好 | 超出会话范围 |
| 主题/深色模式偏好(持久化) | 超出会话范围 |
| “不再显示”关闭提示 Cookie | 仅为方便,并非严格必要 |
| 最近浏览的产品 | 改善体验,并非服务必需 |
边界情况与监管指引
同意状态 Cookie 本身
用于存储用户是否接受或拒绝 Cookie 的 Cookie:
| 数据保护机构立场 | 是否豁免? | 理由 |
|---|---|---|
| UK ICO | 是 | 严格来说,必须记住用户的隐私选择 |
| CNIL | 是 | 实施同意所需的技术必要条件 |
| Belgian DPA | 是 | 为避免每个页面都重新提示而必需 |
| EDPB | 是(隐含) | 履行同意义务所必需 |
Pinnacle E-Commerce Ltd:consent_state Cookie 被归类为严格必要。
欺诈检测 Cookie
| 场景 | 是否豁免? | 理由 |
|---|---|---|
| 表单提交的 CSRF 令牌 | 是 | 保障用户请求的服务(提交表单)的安全 |
| 机器人检测(CAPTCHA) | 很可能是 | 保障服务安全;部分数据保护机构要求告知 |
| 用于欺诈检测的设备指纹识别 | 很可能否 | 超出严格必要范围;可能需要取得同意或依据合法利益 |
| reCAPTCHA Cookie | 存在争议 | Google reCAPTCHA 会设置 Cookie 并与 Google 通信;部分数据保护机构要求取得同意 |
CDN 和基础设施 Cookie
| 场景 | 是否豁免? | 理由 |
|---|---|---|
| Cloudflare __cf_bm(机器人管理) | 存在争议 | 与安全相关,但会设置持久化 Cookie;请与 DPO 审查 |
| CDN 会话路由 | 是 | 负载均衡(E 类) |
| 地理位置路由 | 仅限会话时是 | 基础设施所需 |
| A/B 测试服务器路由 | 否 | 用于优化,并非用户请求的服务 |
Pinnacle E-Commerce Ltd 的分类流程
步骤 1:盘点所有 Cookie
使用 cookie-audit 技能生成完整的 Cookie 清单。
步骤 2:应用双重测试
对于每个 Cookie,回答:
- 网站提供某项特定功能是否严格需要此 Cookie?
- 用户是否明确请求了该特定功能?
步骤 3:分类并记录
| Cookie | 用户请求的服务 | 严格必要 | 时长合适 | 豁免 |
|---|---|---|---|---|
| session_id | 浏览网站 | 是 — 会话状态 | 会话 | 是 |
| auth_token | 登录 | 是 — 身份验证 | 会话 | 是 |
| cart_session | 将商品加入购物车 | 是 — 购物车功能 | 会话 | 是 |
| csrf_token | 提交表单 | 是 — 表单安全 | 会话 | 是 |
| _ga | 无(运营方分析) | 否 | 2 年 | 否 |
| _fbp | 无(运营方广告) | 否 | 90 天 | 否 |
| locale | 更改语言 | 有争议 | 1 年 | 否 — 持久化,需要取得同意 |
| consent_state | 管理 Cookie 偏好 | 是 — 同意管理 | 6 个月 | 是 |
步骤 4:记录理由
对于每个豁免的 Cookie,都应保留书面理由:
模板:
Cookie: [name]
Classification: Strictly Necessary — Exempt from consent
User-Requested Service: [specific service]
Why Strictly Necessary: [explanation of why the service cannot function without this cookie]
Duration Justification: [why this duration is the minimum necessary]
WP 194 Category: [A/B/C/D/E/F]
Reviewed By: [DPO name]
Review Date: [date]
Next Review: [date + 12 months]
主要法律参考文件
- 《ePrivacy 指令》2002/58/EC,第 5(3) 条 — 同意要求及严格必要情形的豁免
- 《指令》2009/136/EC(《公民权利指令》) — 修订第 5(3) 条,要求获得知情同意
- 第 29 条工作组第 04/2012 号意见(WP 194) — 关于 Cookie 同意豁免类别的权威指引
- 欧盟法院 C-673/17 案(Planet49) — 主动同意;豁免仅适用于严格必要的 Cookie
- 欧洲数据保护委员会《同意指南》05/2020 — GDPR 下的同意要求适用于 ePrivacy 同意
- 英国 ICO《Cookie 指引》(2019 年,2023 年更新) — PECR 对 ePrivacy 豁免的实施
- 法国国家信息与自由委员会第 2020-091 号审议决定(2020 年 9 月 17 日) — 法国对 Cookie 豁免的实施
- 《指令》2009/136/EC 序言第 66 条 — 对“严格限于提供用户明确请求的信息社会服务”的 Cookie 予以豁免