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 而不被淹沒,看看如何保持快節奏。
繼續閱讀
如何在開發團隊中擴充套件 AI 編碼代理
一個開發者與編碼代理的故事是生產力的故事。五個開發者與二十個代理則是協調問題。當團隊擴充套件時,首先會出現什麼問題,以及保持的設定:承諾的上下文檔案、清晰的檔案所有權、按爆炸半徑進行審查,以及你可以實際看到的成本。
讀文章AgentsRoom 現已支援 Kimi Code
Moonshot AI 的終端編碼代理 Kimi Code 已成為 AgentsRoom 的一級提供方。把它和 Claude、Codex、Antigravity CLI、OpenCode、Aider、Grok Build、Mistral Vibe 一起執行,並在對話中途隨時切換。
讀文章把 PDF 轉成 Markdown 以節省 LLM token:MarkItDown 實戰指南
直接把 PDF 餵給 Claude 或任何 LLM 都會悄悄燒掉大量 token:每一頁都會被額外轉成圖片。先用微軟免費開源工具 MarkItDown 把檔案轉成 Markdown,token 賬單最多可降低 80%。完整指南涵蓋 CLI、Python 與 MCP 配置。
讀文章
下載 AgentsRoom
在一個視窗中執行你所有專案的 AI 代理(Claude、Codex、Antigravity CLI、OpenCode、Aider、Grok Build、Mistral Vibe、Kimi Code)。
配套應用:隨時隨地監控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接傳送到您的公開待辦清單。
AgentsRoom 實際執行一瞥。