关于 cookie-audit
cookie-audit 是面向隐私与网站团队的 Cookie 审计流程指南,涵盖扫描、分类、合规差距分析和报告,并包括持续监测建议。
主要功能
- 01规划审计范围与扫描
- 02识别 Cookie 和跟踪技术
- 03按用途分类 Cookie
- 04核查同意与披露差距
- 05整理审计报告并持续监测
适用场景
- 01盘点网站及子域的跟踪技术
- 02检查 Cookie 同意机制是否合规
- 03部署前审查新增 Cookie
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mukul975/ privacy-data-protection-skills --skill cookie-audit安装后在 Claude Code 中输入/cookie-audit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/template.mdreferences/standards.mdworkflows.mdscripts/process.py详细介绍
网站 Cookie 和跟踪器审计
概述
Cookie 审计是实现 Cookie 同意合规的基础步骤。审计需要系统地识别、分类并记录网站部署的每个 Cookie 和跟踪技术。欧盟法院在 Planet49 GmbH v. Bundesverband der Verbraucherzentralen(案件 C-673/17,2019 年 10 月 1 日)中确立,预先勾选的复选框不构成《电子隐私指令》下的有效同意,且用户必须在同意前获知 Cookie 的有效期和第三方访问情况。全面的审计能够明确必须取得哪些同意,以及必须披露哪些信息。
审计方法
阶段 1:准备
开始扫描前,记录 Pinnacle E-Commerce Ltd 的审计范围:
| 参数 | 值 |
|---|---|
| 主域名 | www.pinnacle-ecommerce.com |
| 范围内的子域名 | shop.pinnacle-ecommerce.com、account.pinnacle-ecommerce.com、blog.pinnacle-ecommerce.com |
| 需身份验证的页面 | 是 — 客户账户、结账流程 |
| 移动端专属页面 | m.pinnacle-ecommerce.com |
| 第三方集成 | Google Analytics 4、Meta Pixel、Hotjar、Stripe、Intercom |
| 扫描频率 | 每季度(下次:2026 年第 2 季度) |
阶段 2:自动扫描
部署扫描工具,捕获所有 Cookie 和跟踪技术:
基于浏览器的扫描
使用无头 Chromium 实例爬取网站并捕获:
- 通过
Set-Cookie标头设置的第一方 Cookie - 通过
document.cookieJavaScript API 设置的第一方 Cookie - 来自嵌入式资源的第三方 Cookie
- LocalStorage 和 SessionStorage 条目
- IndexedDB 数据库
- 像素和信标(1x1 图像请求、
navigator.sendBeacon()调用) - 浏览器指纹识别脚本(canvas、WebGL、AudioContext)
网络层捕获
监控 HTTP/HTTPS 流量,以识别:
- URL 查询字符串中的跟踪参数(utm_*、fbclid、gclid)
- 经由跟踪域名的重定向链
- 第三方之间的 Cookie 同步
- 服务器到服务器的数据共享端点
阶段 3:Cookie 分类
根据 ICC UK Cookie 指南类别对每个 Cookie 进行分类,并遵循《ePrivacy 指令》第 5(3) 条:
类别 1:严格必要 网站正常运行所必需的 Cookie。根据第 5(3) 条的豁免规定,无需征求同意。
Pinnacle E-Commerce Ltd 的示例:
| Cookie 名称 | 域名 | 有效期 | 用途 |
|---|---|---|---|
| session_id | .pinnacle-ecommerce.com | Session | 维护用户会话状态 |
| csrf_token | .pinnacle-ecommerce.com | Session | 防止跨站请求伪造 |
| cart_items | shop.pinnacle-ecommerce.com | 24 hours | 购物车内容 |
| auth_token | account.pinnacle-ecommerce.com | 30 minutes | 身份验证状态 |
| load_balancer | .pinnacle-ecommerce.com | Session | 服务器负载分配 |
类别 2:性能/分析 收集汇总使用数据的 Cookie。需要征求同意。
| Cookie 名称 | 域名 | 有效期 | 用途 |
|---|---|---|---|
| _ga | .pinnacle-ecommerce.com | 2 years | Google Analytics 客户端 ID |
| _ga_XXXXXXX | .pinnacle-ecommerce.com | 2 years | 保留 GA4 会话状态 |
| _gid | .pinnacle-ecommerce.com | 24 hours | 区分 GA4 会话 |
| hjSessionUser* | .pinnacle-ecommerce.com | 1 year | Hotjar 用户识别 |
| hjSession* | .pinnacle-ecommerce.com | 30 minutes | Hotjar 会话数据 |
类别 3:功能 记住用户偏好设置的 Cookie。除非严格必要,否则需要征求同意。
| Cookie 名称 | 域名 | 有效期 | 用途 |
|---|---|---|---|
| locale | .pinnacle-ecommerce.com | 1 year | 语言偏好 |
| currency | shop.pinnacle-ecommerce.com | 1 year | 货币选择 |
| recently_viewed | shop.pinnacle-ecommerce.com | 30 days | 最近查看的商品 |
类别 4:定向/广告 用于广告定向和跨站追踪的 Cookie。始终需要征求同意。
| Cookie 名称 | 域名 | 有效期 | 用途 |
|---|---|---|---|
| _fbp | .pinnacle-ecommerce.com | 90 days | Meta Pixel 浏览器 ID |
| _fbc | .pinnacle-ecommerce.com | 90 days | Meta 点击标识符 |
| _gcl_au | .pinnacle-ecommerce.com | 90 days | Google Ads 转化关联器 |
| IDE | .doubleclick.net | 13 months | Google 广告投放 |
| fr | .facebook.com | 90 days | Meta 广告投放与衡量 |
阶段 4:差距分析
针对识别出的每个 Cookie,依据 Planet49 要求进行核查:
Planet49 合规检查清单:
- 主动同意机制:是否通过用户主动操作(点击、切换开关)征求同意,而非使用预先勾选的复选框?(Planet49,第 62 段)
- 同意前告知:在用户表示同意前,是否已告知用户:
- Cookie 的有效期?(Planet49,第 81 段)
- 第三方是否可以访问?(Planet49,第 81 段)
- 每个 Cookie 类别的具体用途?
- 选择粒度:用户能否分别同意各 Cookie 类别,而非只能全部接受?
- 无 Cookie 墙:用户是否可以在不接受非必要 Cookie 的情况下访问网站?
- 撤回机制:用户能否像给予同意一样轻松地撤回同意?
差距分析模板:
| Cookie | 类别 | 已征求同意 | 已披露有效期 | 已披露第三方 | 差距 |
|---|---|---|---|---|---|
| _ga | 分析 | 是 | 否 — 列为“持久性”而非“2 年” | 否 — 未注明 Google | 有效期 + 第三方披露 |
| _fbp | 定向 | 是 | 是 | 是 | 无 |
| locale | 功能 | 否 | 否 | 不适用 | 评估是否严格必要 |
第 5 阶段:报告
Pinnacle E-Commerce Ltd 的审计报告必须包含:
- 执行摘要:发现的 Cookie 总数、按类别细分的数量、关键缺口
- 完整的 Cookie 清单:包含名称、域名、时长、用途、类别、法律依据的完整表格
- 第三方跟踪器清单:所有接收数据的第三方域名,以及共享的数据类型
- 合规缺口登记表:每项缺口、严重程度(高/中/低)、整改建议
- Cookie 政策更新建议:需要修改的具体文本
- 同意机制评估:当前横幅是否符合 Planet49 的要求
- 建议的扫描计划:生产环境每季度扫描一次,新功能部署时按需扫描
持续监控
安排自动扫描,以检测通过以下方式引入的新 Cookie:
- 开发人员部署(新增分析或营销标签)
- 第三方脚本更新(供应商 SDK 更新并添加新 Cookie)
- A/B 测试平台添加实验 Cookie
- CDN 或基础设施变更
将 Cookie 扫描集成到 CI/CD 流水线中:在预发布环境检测到任何新 Cookie 后,必须先进行分类并记录,才能部署到生产环境。
主要法律参考
- CJEU Case C-673/17 (Planet49) — 必须取得主动同意;预先勾选的选项无效;必须在取得同意前披露 Cookie 的期限和第三方访问情况
- ePrivacy Directive 2002/58/EC, Article 5(3) — 存储或访问用户设备上的信息必须取得同意,但严格必要的情形除外
- GDPR Article 4(11) — 同意的定义:自由作出、具体、知情且明确的表示
- EDPB Guidelines 05/2020 on Consent — 关于有效同意机制的详细指导
- ICC UK Cookie Guide (2012) — Cookie 分类框架(严格必要、性能、功能、定向)
- CNIL Deliberation No. 2020-091 (17 September 2020) — 关于 Cookie 和其他跟踪器的指南