Vibe Coding 安全嗎?真正風險同發布前要檢查嘅嘢
Vibe coding 對個人工具同原型係安全嘅,對有真實用戶嘅真實 App 亦可以安全,但前提係你要加入「只需描述然後睇吓運行得唔得」嘅做法會跳過嘅檢查。最危險嘅問題喺畫面上睇唔到:用戶可以睇到彼此嘅資料、密鑰放喺瀏覽器入面,以及冇任何限制嘅公開表格。本指南會解釋真正會造成麻煩嘅風險、點樣處理機密、需要幾多檢視,以及發布前要做嘅 30 分鐘檢查。
完整嘅技術清單,請參閱我哋嘅 AI 生成 App 保安清單。本頁係較短、實用嘅版本,畀唔睇程式碼嘅人使用。
點解 vibe coding 有佢自己嘅風險
做 vibe coding 時,你係用 App 嚟判斷佢好唔好。咁樣可以搵到壞咗嘅按鈕同難睇嘅版面,但搵唔到嗰啲只會喺其他人以不同方式使用 App 時出現嘅問題:例如陌生人、機械人,或者一個喺網址列度改來改去嘅好奇用戶。
AI 模型寫出嘅程式碼大致可以運作,大部分都冇問題。但佢哋係為你要求嘅嘢而優化,例如「令儀表板顯示我嘅專案」,而未必會加入你冇提到嘅保護,例如「而且唔可以顯示其他人嘅專案」。解決方法唔係停止 vibe coding,而係明確要求呢啲保護,然後逐項測試。
你嘅 App 有幾大風險?一個簡單分級
| 你嘅 App | 風險 | 你需要咩 |
|---|---|---|
| 只有你自己用、冇敏感資料嘅個人工具 | 低 | 將密鑰放離程式碼。大致如此。 |
| 有表格嘅公開網站或 Landing Page | 低至中 | 表格限制、機械人防護、頁面內冇機密 |
| 讓人註冊並儲存自己資料嘅 App | 中 | 本頁所有內容 |
| 付款、健康、財務、兒童或身份證明資料 | 高 | 本頁所有內容,再加開發人員檢視 |
誠實睇清楚自己屬於邊一行。好多 App 一開始都係第一行,但冇人決定之下就漂移到第三行。
真正會造成麻煩嘅風險
1. 用戶可以睇到彼此嘅資料
呢個係 AI 生成 App 最常見、最嚴重嘅問題。頁面只會向每位用戶顯示屬於佢嘅紀錄,所以睇落冇問題。但如果有人喺網址列或請求中改動 ID,伺服器就會返回任何紀錄。因為你測試時永遠用自己嘅帳戶,所以永遠見唔到。
點樣檢查: 建立兩個帳戶。以用戶 A 登入,打開 A 嘅一筆紀錄,記低個網址。然後喺私人視窗以用戶 B 登入,貼上該網址。你應該見到「找不到」,而唔係 A 嘅資料。
提示詞:
檢查每個讀取、更改或刪除用戶資料嘅伺服器端點。每個端點都必須確認已登入用戶有權存取該特定紀錄。列出所有端點,說明每個端點如何檢查,並修正任何冇做到檢查嘅端點。
2. 機密放錯地方
機密係任何授予存取權嘅嘢,例如 AI 或電郵服務嘅 API 密鑰、資料庫密碼、付款服務商嘅密鑰。如果佢喺瀏覽器運行嘅程式碼入面,任何人都可以開啟開發人員工具然後複製。如果被提交到公開儲存庫,機械人幾小時內就會搵到。
點樣檢查: 問 AI。
列出呢個 App 使用嘅每一個 API 密鑰、權杖同密碼。每一個都告訴我佢儲存喺邊度,以及會唔會送到瀏覽器。將任何位於程式碼或前端嘅機密,移到伺服器端 secrets。
3. 公開表格同端點冇任何限制
聯絡表格、註冊同 AI 功能好快會畀機械人搵到。冇限制嘅話,你會收到垃圾訊息、假帳戶,或者因 AI API 被呼叫過千次而產生嘅大額賬單。
提示詞:
為註冊、登入、聯絡表格同每個呼叫 AI 服務嘅端點加入速率限制。為公開表格加入蜜罐欄位。告訴我你揀咗咩限制。
4. 信任瀏覽器
任何由瀏覽器決定嘅嘢,都可以畀用戶改動:價格、折扣、測驗答案、「是否管理員」旗號。重要嘅規則必須喺伺服器執行。
提示詞:
搵出任何由瀏覽器決定、但應該由伺服器決定嘅地方:價格、總額、權限、角色、分數。將呢啲檢查移到伺服器。
5. 冇後路
一次錯誤嘅更改,或者一個不良分子,都可能刪除資料。如果冇備份,亦冇辦法還原,一個細錯誤就會變成永久損失。請確保你嘅工具為程式碼提供檢查點,為資料庫提供備份。參閱點樣備份 App 資料庫。
正確處理機密
機密造成嘅可避免損害,比其他任何嘢都多,所以以下規則集中列出:
- 永遠唔好將真正密鑰貼到對話中。 對話會被儲存、分享同截圖。應該將密鑰放喺你工具嘅 secrets 或環境變數中。(什麼是環境變數同 secrets。)
- 由伺服器呼叫付費服務。 瀏覽器要求你嘅伺服器,由伺服器用密鑰去呼叫 AI 或付款服務。
- 測試同正式使用分開用密鑰,咁樣外洩嘅測試密鑰就唔會影響真金白銀。
- 喺 AI 同電郵服務商嘅儀表板設定消費上限。
- 如果懷疑密鑰外洩,即時更換。 建立新密鑰、更新 secret,然後刪除舊密鑰。
喺 Mythex,機密儲存喺專案設定中而非程式碼內,而且 agent 可以使用機密,無需將數值顯示喺對話中。我哋有一份如何保管 API 密鑰嘅指南,涵蓋更多服務商。
需要幾多程式碼檢視?
Vibe coding 意味住你唔會逐行睇程式碼。你唔需要咁做。但係有啲部分,應該要有人睇吓。
- 個人工具: 除咗本頁嘅檢查之外,唔需要其他嘢。
- 有用戶帳戶嘅 App: 檢視登入同資料存取嘅運作方式。你可以叫 AI 用平實文字解釋,然後核對解釋是否符合你嘅預期。
- 涉及付款或敏感資料嘅 App: 請開發人員檢視驗證、權限、付款處理,以及任何儲存個人資料嘅部分。佢哋只需要幾個小時,唔係重寫。
即使冇開發人員,以下提示詞都有用:
用平實文字解釋,呢個 App 如何判斷用戶係邊個,以及佢哋可以睇到咩。指出相關檔案。然後列出任何你會想保安審查員檢視嘅地方。
我哋有一份點樣檢視 AI 生成程式碼嘅指南,講解審查員會留意咩,你可以直接交畀負責檢視嘅人。如果你嘅工具容許匯出程式碼或同步到 GitHub,安排檢視就好簡單;喺 Mythex,兩者都屬於 Pro 方案。
發布前 30 分鐘檢查
喺將連結分享畀你圈子以外嘅人之前,先執行以下檢查。
存取權(10 分鐘)
- 兩個帳戶,兩個瀏覽器:B 可唔可以用網址打開 A 嘅紀錄?應該唔可以。
- 登出,然後直接輸入每個頁面嘅網址。私人頁面應該將你導向登入頁。
- 以一般用戶身份打開管理員網址,應該被拒絕。
機密(5 分鐘)
- 用上面嘅提示詞,問 AI 每個密鑰放喺邊度。
- 打開 App,檢視頁面原始碼,並搜尋「key」、「secret」同「token」。
表格同濫用(5 分鐘)
- 將每個表格留空提交、輸入非常長嘅文字提交,以及快速連續提交兩次。
- 確認註冊、登入同任何 AI 功能都有速率限制。
資料同還原(5 分鐘)
- 知道資料儲存喺邊度,以及點樣還原。
- 確認可以將程式碼還原到之前一個正常運作嘅版本。
法律同基本要求(5 分鐘)
- 如果你會收集個人資料,請加入私隱政策,並說明收集咩資料。參閱點樣撰寫服務條款同私隱政策。
- 確保已發布嘅 App 使用 HTTPS。大部分建立工具,包括 Mythex,都會替你處理。
如果全部通過,你嘅早期推出就算穩陣。每次對登入、角色或資料作出大改動之後,請重做第 1 至 5 項。
Vibe coding 平台保護咗咩,又冇保護咩
一個好嘅平台會處理大量基礎設施,例如 HTTPS、獨立工作區、每個專案一個資料庫、機密儲存、備份同還原。Mythex 會為每個專案提供私人工作區同資料庫,將機密放離程式碼,並且喺每次成功更改後儲存檢查點,方便你撤銷。
但冇任何平台可以得知你 App 嘅規則。只有你知道客戶唔應該見到彼此嘅發票,或者一張優惠券應該只可以用一次。呢啲規則必須寫喺你嘅提示詞入面,並且用你嘅測試確認。
簡短答案
Vibe coding 嘅安全程度,取決於你加入嘅檢查。如果只係個人工具,將密鑰放離程式碼,然後盡情享受。如果涉及其他人嘅資料,每次正式推出前都要做上面嘅 30 分鐘檢查,而付款同敏感資料就要開發人員把關。想睇呢啲風險喺真實專案中點樣出現,可以閱讀我哋嘅 vibe coding 案例;想由一開始就用呢啲檢查建立 App,可以跟隨點樣用 vibe coding 建立 App。
常見問題
Vibe coding 安全嗎?
個人工具同未正式推出嘅原型,如果冇敏感資料,係安全嘅。但如果有其他人註冊、儲存資料或付款,就要加入 vibe coding 常常跳過嘅檢查:伺服器端嘅存取規則、將機密放離程式碼、為公開表格設定限制,並且檢視所有處理金錢或個人資料嘅部分。
Vibe coding 生成嘅 App 最大嘅保安風險係咩?
存取控制失效:一個已登入嘅用戶可以讀取或更改另一位用戶嘅資料,通常只需要喺請求中改一個 ID。用你自己嘅帳戶測試時永遠見唔到,所以特別普遍。要刻意用兩個帳戶去測試。
AI 生成嘅程式碼可以洩露我嘅 API 密鑰嗎?
可以,如果密鑰放喺訪客瀏覽器中運行嘅程式碼入面,或者被提交到公開儲存庫。請將密鑰放喺你工具嘅 secrets 或環境變數中,由伺服器呼叫外部服務,並要求 AI 列出每個密鑰喺邊度被使用。
我需要開發人員檢視 vibe coding 生成嘅 App 嗎?
如果只係個人工具或早期原型,就唔需要。但如果你準備直接收款、儲存健康、財務或兒童資料,或者開放畀大量用戶使用,就應該請開發人員檢視。匯出或 GitHub 存取權令呢個檢視好容易安排。
喺 vibe coding 平台上,我嘅程式碼同資料安全嗎?
視乎平台而定,所以要睇佢嘅保安同私隱頁面。喺 Mythex,每個專案都喺自己嘅私人工作區同獨立資料庫中運行,機密儲存喺程式碼以外,而檢查點讓你可以還原有問題嘅更改。不過,你 App 自身嘅邏輯仍然需要本指南所講嘅檢查。