Vibe Coding 与 GDPR:为什么你用 AI 生成的网站可能正在违法
Claude Code、Codex 这类 AI 编程智能体能在几小时内交付一个能跑的网站,却也悄悄埋下你从未要求过的 GDPR 违规:同意之前就放 cookie、个人数据永久保存、用户无法删除。本文讲清楚为什么每个编程智能体都会这样、可能让你付出多大代价,以及那个能扫描项目 GDPR 问题并直接修复的免费 Claude Code skill。
你把一个应用的想法描述给编程智能体,它写出代码,你一部署,几小时后线上就有了一个真实的产品。这就是 vibe coding 的承诺,而且大多数时候它确实兑现了。网站能打开,注册能用,仪表盘看起来很干净。你能看见的一切都没问题。
问题恰恰出在你看不见的一切上。在它把功能一项项接起来的时候,这个智能体也顺手在 cookie、追踪、数据存储和用户权利上做了几十个小决定。没人要求它去考虑法律,所以它没考虑。等你上线那一刻,你那个崭新的网站很可能已经潜藏着一堆 GDPR(通用数据保护条例)违规,而你对此一无所知。
这不是 Claude 的问题,也不是 Codex 的问题。这是 AI 编程智能体工作方式的一种结构性特征,对每一个智能体都成立。下面我们就一步步看清到底哪里出了岔子、它可能让你付出什么代价,以及那个能抢在监管机构之前找出并修复这些问题的免费 Claude Code skill。
AI 编程智能体悄悄做错了什么
编程智能体只为一件事做优化:让功能跑起来。你要统计分析,它就塞进一段追踪脚本。你要联系表单,它就把每一次提交都存进一张表。你要登录功能,它就把用户记录永久留着。每个选择单独看都合情合理。可一旦拼到一起,它们就成了一份教科书式的违规清单,正是监管机构最常处罚的那些。
下面是一个典型的 vibe coding 网站通常会漏掉的东西:
- Cookie 和追踪器在同意之前就触发。 统计分析、嵌入式地图、字体、社交像素、会话工具,页面一打开就加载。按照 GDPR 和 ePrivacy 规则,非必要 cookie 必须事先取得用户自愿给出的同意。一个在首屏渲染时就加载它们的网站已经不合规,而那条只在追踪器触发之后才弹出的 cookie 横幅并不能补救。
- 个人数据被永久保存。 智能体建了一张
users表、一张submissions表、一张logs表,却从不设定任何保留策略。GDPR 要求你只在真正需要的期限内保存个人数据。「永远留着,以防万一」正是这部法律所要制止的超期存储违规。 - 没有任何途径删除你的数据。 用户拥有删除权,也就是所谓的被遗忘权。几乎没有哪个 vibe coding 应用一开始就自带「删除我的账户」流程,或者一套有据可查的删除请求处理流程。数据进得来,却没有一扇写着出口的门。
- 没有访问或可携带的路径。 人们可以要求你交出一份副本,包含你所保存的、关于他们的全部数据。如果你唯一的应对就是一条你从没测试过的手工数据库查询,那你并没有履行访问权和可携带权的义务。
- 第三方数据悄无声息地离开欧盟。 你两秒钟加上去的那段统计脚本或那个托管字体,可能把 IP 地址和标识符发往欧盟以外的服务器,而没有任何合法的传输机制。
- 对你收集了什么,没有任何记录。 GDPR 期望你了解并记录自己的处理活动。一个应用,它的数据流向只存在于智能体早已遗忘的聊天记录里,根本谈不上有任何台账。
这一切都不会在演示里暴露出来。应用运行得完美无瑕。法律层面就这么缺席了,而且会一直缺席下去,直到有人投诉或监管机构上门。
智能体把左栏填得毫无瑕疵。右栏是没人要求它去搭建的那部分,于是它一直空着。
为什么每个编程智能体都这样,不只是 Claude
把锅甩给某一个工具很诱人,但根源要深得多。编程智能体从公开代码里学习,而绝大多数公开代码在写的时候压根没把 GDPR 放在心上。当一个模型见过一万个「加 Google Analytics」的例子,都是把脚本直接丢进 <head>,那它复现的就是这个套路。训练数据把坏习惯编码了进去,输出也就继承了它。
把这个问题放到更大的尺度上看,有硬数据为证。Veracode 的《2025 GenAI 代码安全报告》测试了超过 100 个大语言模型在数十项编程任务上的输出,发现 45% 的 AI 生成代码引入了安全漏洞。同一项研究还发现,AI 写的代码携带的漏洞是人类所写代码的 2.74 倍,而且很说明问题的是,更新、更大的模型并没有表现得更好。这是结构性的,不是下个版本就能打补丁修掉的 bug。
隐私合规和安全本质上是同一类问题。两者都是「让它跑起来」这个目标会径直绕过的隐形要求。所以无论你驱动的是 Claude Code 还是 Codex、Antigravity CLI、Cursor,还是别的任何智能体,你都面对着同一个盲区。工具会换,这个缺口不会。
GDPR 违规实际上能花掉你多少钱
到这里,事情就不再抽象了。GDPR 罚款的上限是 2000 万欧元或全球年营业额的 4%(取两者中较高者),而监管机构已经开始朝这个区间的上限开罚单了。
仅在 2025 年,法国数据保护机构 CNIL 就开出了 4.86 亿欧元的罚款,接近其 2024 年全年总额的十倍。其中大部分来自九月某一天的两项裁决:对 Google 因 cookie 和广告透明度方面的违规处以 3.25 亿欧元,对 Shein 因未经同意放置追踪器处以 1.5 亿欧元。AI 智能体默认就会交付的那几类错误,正是招来九位数罚款的同一类违规。
看到这些数字,很容易就以为监管机构只盯着巨头。其实并非如此。CNIL 设有一套简化程序,专门针对那些规模小、事实清楚的案子:一条不合规的 cookie 横幅、一个被无视的访问请求、一套薄弱的密码策略。这些都是小企业司空见惯的违规,也恰恰是 vibe coding 网站会做错的地方。你公司的体量改变的是罚款的数额,而不是你会不会被罚。
登上头条的罚款砸在大公司身上,但它们背后的违规,未经同意的 cookie 和缺失的透明度,和编程智能体默认就给一个小网站交付的那些一模一样。
GDPR 到底要求什么(说人话)
你不必成为律师,就能把这道缺口补上大半。日常合规的绝大部分,归根结底就是你的代码要么具备、要么不具备的少数几个具体行为:
- 非必要 cookie 之前先取得同意。 任何会追踪、画像或度量的东西,在用户主动同意之前都不该运行。严格必要的 cookie 是唯一的例外。
- 你收集的每一点数据都要有合法依据。 同意、合同或正当利益,在你存储任何东西之前就定下来,而不是之后。
- 数据最小化。 只收集功能真正需要的东西。智能体那种什么都记一笔日志的本能,恰恰与此相反。
- 保留期限。 每一类个人数据都需要一个明确的存活期限,以及一种到期就删除它的办法。
- 数据主体权利。 访问、更正、删除和可携带都需要一条真实可用的路径,而不是隐私政策里的一句空头承诺。
- 一份清晰的隐私告知和一份处理记录。 人们应当能看到你收集了什么、为什么,而你应当能拿出证据。
把这份清单对照前面讲智能体做错了什么那一节读一遍,你会发现两者几乎完全重叠。好消息是,正因为这些都是具体的、代码层面的行为,工具就能扫描它们。
解决办法:一个能扫描并修复的免费 Claude Code skill
手工清单给不了你的,正是这一点:对你真实代码库的一次自动检查。一位名叫 Jeremy Longshore 的开发者发布了一个免费、开源的 Claude Code skill,叫做 scanning-for-gdpr-compliance(在某些插件市场里以 GDPR Compliance Scanner 的名字列出),干的就是这件事。它就在 claude-code-plugins-plus 仓库里,完全在 Claude Code 内部运行,所以不用另外注册任何服务。
这个 skill 会像一位隐私审计员那样读你的项目。它检查数据流、存储位置、处理活动、同意机制、保留策略、访问控制,以及你如何处理数据主体权利。然后它做三件要紧的事:
- 它检测。 基于规则的检查标记出上面那些套路:同意之前就触发的追踪器、没有保留期限的个人数据、缺失的删除路径、未经记录的处理活动。
- 它按严重程度分类。 检出结果带着评分和优先级回来,于是一个泄露标识符的追踪器排在你隐私告知里少写一行字之前。你先修危险的东西,而不是淹没在一张没有层次的清单里。
- 它在你的代码里修复。 因为它在智能体内部运行,所以它不只是产出一份你之后还得自己动手的报告。它能直接落实推荐的改动,把「你这里有个问题」变成同一趟检查里的一次真实修改。
装它只要一行。通过插件市场添加来源、安装这个 skill:
/plugin marketplace add jeremylongshore/claude-code-plugins-plus
然后用自然语言触发一次扫描。这个 skill 会响应这样的短语:
scan GDPR compliance
check data privacy
validate GDPR
你也可以把 skill 文件夹丢进项目的 .claude/skills/ 目录来安装它,这是 Claude Code 发现 skill 的标准方式。无论哪种方式,扫描都跑在你真实的仓库上,而不是一份抽象的清单上。
代码库进去,分好优先级的检出结果在中间,真实的代码修改出来。和你已经在用来做功能的那个循环一样,只不过这回对准了合规。
一句诚恳的提醒,因为坦诚也是信任的一部分:扫描不等于法律放行。这个 skill 抓的是构成日常风险大头的那些机械的、代码层面的违规,比如 cookie、保留期限、缺失的删除流程,几分钟内就能让你大幅接近合规。它不能替代数据保护律师去处理任何敏感的事,比如数据保护影响评估(DPIA)或健康数据的处理。把它当作那一道扫掉明显违规的技术初筛,然后请人工复核来处理那些边缘情形。
为什么当你驱动一支智能体舰队时,这件事会更难
一个开发者配一个智能体,需要管好的只有一个代码库。可一旦你让好几个智能体并行运行,每个都往同一个产品里塞功能,无声违规的暴露面就会成倍放大。一个智能体加了段统计脚本,另一个建了张日志表,第三个接进了一个第三方挂件,而从没有任何一个人审视过整体的隐私影响。
这和「上下文与一致性在规模化时为何变难」是同一个道理,无论话题是并行运行编程智能体还是vibe coding 而不被淹没,我们都一再回到这个主题。解决办法的思路也一样:把标准做进共享的配置里,而不是变成一件你记得在最后去检查的事。
在多智能体驾驶舱 AgentsRoom 里,你配置一次的 skill 和规则,会应用到房间里的每一个智能体,覆盖你在同一处驱动的 Claude Code、Codex 以及其他提供方。把一道合规检查接进你的工作流,只需一次,每个智能体就都继承它,而不是寄望于每一个智能体各自记得一条没人教过它的规则。能让单个会话保持干净的那份纪律,正是让整支舰队远离监管麻烦的关键。
一份给 AI 生成网站的实用合规清单
在你认定任何一个 AI 生成的网站算完工之前,拿它对照这份清单跑一遍。其中大部分扫描器都会抓到,但知道自己在找什么,才能读懂那份报告:
- 在用户同意之前,没有任何非必要 cookie 或追踪器触发。
- 每一处个人数据存储都有明确的保留期限和一种删除机制。
- 用户可以请求并收到自己数据的一份副本。
- 用户可以删除自己的账户,相关数据也随之被清除。
- 一份隐私告知,说明你收集了什么、为什么收集、以及基于什么法律依据。
- 第三方脚本,以及向欧盟境外的数据传输,都有合法机制。
- 一旦被要求,你能拿出一份处理活动记录。
如果你没法把每一格都打上勾,你那个 AI 生成的网站就背着 GDPR 风险,而一封投诉就足以把它捅出来。
一句话带走
Vibe coding 是真的快,而那份速度正是陷阱。智能体把你看得见的一切都填上,把你看不见的一切都跳过,而 GDPR 恰恰就藏在后者里。同意之前的 cookie、永久保存的数据、无法删除:这些不是什么奇异的边缘情形,它们是每个编程智能体的默认输出,也正是监管机构在 2025 年开出数亿欧元罚款所针对的同一批违规。
解决办法不是别再用智能体了,而是补上那道缺失的检查。把免费的 scanning-for-gdpr-compliance skill 跑在你的项目上,让它分类并修复明显的违规,然后让人来复核剩下的部分。几分钟扫描的成本,远比从监管机构的一封信里发现这个缺口要便宜得多。
正在用不止一个智能体构建?下载 AgentsRoom,在一个驾驶舱里驱动 Claude Code、Codex 等等,在提供方兼容性矩阵里看清每一个支持什么,再读一读vibe coding 而不被淹没,看看如何保持快节奏。
下载 AgentsRoom
在一个窗口中运行你所有项目的 Claude 智能体。
配套应用:随时随地监控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接发送到您的公开待办清单。
AgentsRoom 实际运行一瞥。