跳至主要內容

    Vibe Coding 是什麼?做出來會動,為什麼還不能直接給別人用?(2026 新手必看)

    出事時誰會受傷,決定你的程式還要補上哪幾道資安與資料防護

    sunny 桑尼· · 14 MIN READ · 212 次瀏覽

    Vibe Coding 是什麼?做出來會動,為什麼還不能直接給別人用?(2026 新手必看)
    本文目錄

    用 Vibe Coding 做出第一個小工具,興奮地丟給朋友試,結果第一天就出包?這篇帶你分清楚自己用、給朋友用、開始收錢、存了別人的個資,每一級最少要補什麼!

    假設你用 Vibe Coding 做出一個能新增任務的小工具。畫面順,按鈕也會動。隔天,第一位使用者連按兩次送出,清單出現兩筆相同任務。

    如果這個工具只有你自己在用,這算不上問題,刪掉一筆就好。把同一顆按鈕換成「付款」,同樣連按兩次,就是一張信用卡被扣了兩次錢。程式一行都沒變,變的是誰在用它,以及出錯時誰受傷。

    所以我看 Vibe Coding 做出來的第一版,第一個問題不問它會不會動,先問它準備給誰用。交給越多人用,越不能只看它會不會動。自己用,會動就夠;給朋友用,要補登入和權限;開始收錢,要補「同一筆不能算兩次」和備份;存了別人的個資,連資料庫的預設設定都要一張表一張表檢查。

    從第二級「給朋友用」開始,程式第一次接觸外部使用者,每升一級都必須累加登入、防重複扣款與資料庫權限(Sunny DataScience 整理)。

    這張圖由下往上讀。分級的依據是出事時誰受傷,跟程式寫了幾行無關。最關鍵的是第一道台階:在自己的帳號底下,很多問題根本不會出現,要等別人進來才第一次被看見。

    快速回答 Vibe Coding 讓做出來的成本大幅降低,但交給越多人用,越不能只看它會不會動。分級要補的防護取決於「出事時誰受傷」:自己玩會動就夠;給朋友用要補登入和資料隔離;開始收錢與存個資,必須補防重複扣款、權限檢查、備份與還原演練。

    Vibe Coding 原本只適用週末專案:AI 產生的程式碼有 45% 含資安漏洞

    這個詞有明確的出處。2025 年 2 月 2 日,曾任 Tesla AI 總監的 Andrej Karpathy 在 X 上寫,有一種新的寫程式方式,他叫它 vibe coding:完全順著感覺走,忘了程式碼的存在。同一則貼文的後半段常被略過:他說這拿來做用完即丟的週末專案還不錯。

    九個月後,Collins 英語詞典把 vibe coding 選為 2025 年度詞彙,定義是「用自然語言提示 AI,協助寫出電腦程式」。「適合週末專案」那半句沒有跟著進字典。這個詞從一個人的週末玩法變成大家做產品的方式,路上掉了的,正好是使用範圍的那個但書。

    我支持用 Vibe Coding 起步。沒寫過程式的人,一個晚上就能看見自己的想法長什麼樣子,幾年前做不到。麻煩出在第一版跑起來之後:畫面會動,很容易讓人以為它已經可以交出去。

    資安公司 Veracode 在 2025 年 7 月的報告把這個落差量了出來。他們讓 100 多個大型語言模型完成 80 個寫程式的題目,再用資安檢測去測產出的程式碼,45% 的樣本含有 OWASP Top 10 列出的漏洞。OWASP 是一個開放的資安社群,Top 10 是它整理的十大網站資安風險。

    AI 生成程式碼整體有 45% 未通過資安測試,表現最好的 Python 也有 38% 含漏洞(資料來源:Veracode《2025 GenAI Code Security Report》)。

    報告裡另一句話更值得記下來:模型越來越會寫出能跑的程式,寫出安全的程式卻沒有進步,大模型也沒有比小模型好多少。能跑和安全是兩回事,而 Vibe Coding 的回饋只告訴你前一件。你看得到畫面、按得到按鈕,看不到伺服器有沒有檢查「這個人能不能做這件事」。這一題要你自己去問。

    越新的模型越會寫出能跑的程式,資安通過率卻一直停在一半上下:能跑和安全是兩回事。(圖片來源:Veracode〈We Asked 100+ AI Models to Write Code. Here's How Many Failed Security Tests.〉,經 Sunny DataScience 中文重點標註)

    這也是為什麼下一節的三起事故,沒有一起是程式跑不動,出事的都是權限和資料沒守住。

    三個真實資安事故:沒關資料庫權限、Agent 誤刪正式庫、只在前端藏按鈕

    用途分級有它的根據:現實裡出事的地方,和用途對得很整齊。

    存了別人的資料:資料庫的門沒關。2025 年 3 月,一位工程師在某個 AI 網站生成平台的作品展示區掃了 1,645 個應用,其中 170 個(約一成)的資料庫,任何人拿著網頁裡本來就公開的那把鑰匙,就能讀整張資料表,有些還能寫入。外洩的東西包括使用者的 Email、電話、付款與訂閱狀態,以及開發者自己的第三方服務金鑰。這個問題後來登記成正式的資安漏洞編號 CVE-2025-48757,嚴重度 9.3 分(滿分 10)。

    原因是一個沒打開的設定。這類平台的網頁直接跟資料庫說話,所以資料庫必須自己判斷「這一列資料能不能給這個人看」,工程上叫資料列層級的權限(Row-Level Security)。這個開關沒開,網頁裡那把公開鑰匙就等於萬能鑰匙。平台方的立場是,每個應用的資料保護由建它的人負責。這句話對用平台的人不好聽,我卻認為它說對了:你按下發布的那一刻,就成了這份資料的負責人。

    開始處理正式資料:Agent 刪了正式資料庫。2025 年 7 月,SaaStr 創辦人 Jason Lemkin 用 Replit 的 AI agent 開發應用,agent 在他宣告凍結程式碼的期間刪掉了正式資料庫,還一度告訴他無法還原,後來證明可以。Replit 執行長事後宣布,開始自動把開發用和正式用的資料庫分開,並提供一鍵還原整個專案。這個修法值得記住:讓 agent 根本碰不到正式資料,比叮嚀它「不要碰」可靠。權限要怎麼收,可以接著讀〈Claude Code 權限要怎麼設?一直按「允許」真的安全嗎?(2026 完整懶人包)〉。

    給別人用:權限只藏在畫面上。這一類不用舉特定事件,它太普遍了。OWASP 2025 年版 Top 10 把「存取控制失效」排第一,他們測過的應用 100% 都找得到某種存取控制問題。典型的樣子是:畫面上把刪除按鈕藏起來,伺服器卻照樣接受刪除請求;或是把網址裡的編號從 101 改成 102,就看得到別人的資料。

    三件事有一個共同點:開發者在自己的畫面上測,一切看起來都正常。問題要等別人進來,或程式碰到真正的資料,才第一次浮出來。

    四級上線檢查表:不用看懂程式碼也能自己驗完權限、防重送與備份

    下面是我會用的最低標準。它是累加的,收錢那一級要做的,包含前兩級的全部。每一項都附一個不必看懂程式碼也能做的檢查。

    用途至少要補自己怎麼驗

    自己用
    至少要補
    版本紀錄;金鑰不放進網頁程式
    自己怎麼驗
    故意改壞一次,確認回得去上一版
    給朋友用
    至少要補
    登入;權限在伺服器或資料庫檢查
    自己怎麼驗
    開兩個帳號,用 B 去開 A 的資料網址
    收錢
    至少要補
    同一筆不算兩次;開發與正式分開;備份
    自己怎麼驗
    連按付款兩次;從備份還原一次到測試環境
    存個資
    至少要補
    每張表預設不公開;只收必要欄位;外洩要通知
    自己怎麼驗
    登出後直接向資料庫要資料,看拿不拿得到

    表裡有三個詞值得多說一句,因為它們最常被跳過。

    「同一筆不算兩次」,工程上叫冪等(idempotency):同一個請求送一次和送十次,結果要一樣。開頭那顆按鈕就是反例。把按鈕送出後變灰,只擋得住手快的人,擋不住網路自動重試和使用者重新整理頁面。可靠的做法有兩層。資料庫加一條唯一約束,意思是「這個欄位不准出現兩筆一樣的值」,例如同一張訂單編號只能存在一次;程式則替每次操作附一個編號,伺服器記住處理過哪些編號,同一個編號再送來,就回傳第一次的結果。金流公司 Stripe 的 API 就是這樣設計的。

    「備份」要驗的是還原。沒有還原過的備份,你不知道它能不能用,也不知道要花多久。Replit 那次事故裡,連 agent 都說錯了能不能還原;你至少要自己試過一次。

    「外洩要通知」在台灣是法律問題。個資法本來就要求,個資被竊取或洩漏時,要查明後通知當事人;2025 年 11 月公布的修正條文,再加上企業向個人資料保護委員會通報的義務,沒做到可以直接開罰,施行日期由行政院另定。一旦你的小工具開始存別人的電話和地址,它就不再只是你的作品。

    實戰踩坑案例:我的會員中心上線後才發現的三個儲存空間與權限漏洞

    我替這個網站做會員中心,程式也是 AI 寫的。〈Plan、Build、Verify、Ship 是什麼?AI 寫程式變快後,進度要怎麼算?(2026 完整懶人包)〉寫過上線之後才冒出來的幾個問題:存放學員作品圖片的空間公開設定不對,圖片破了;管理員上傳檔案時送出的驗證資訊不對;在平台管理介面設定的檔案類型限制沒有作用,最後改用資料庫的權限規則擋副檔名。

    這三個問題都和「誰能看、誰能傳什麼」有關,也都在程式寫完、合併之後,到了真實環境才看得到。會員中心存的是學員的購課紀錄和作品,落在表格最上面那一級。這次經驗讓我更相信分級:AI 寫程式的速度不會因為用途變高而變慢,該補的東西卻會一級一級變多。

    四個分級盲點:風險看的是出事後果而非專案規模,醫療金融需交由專家

    第一,分級看的是後果,不看規模。一個 50 行的報名表單,只要存了別人的電話,就在最上面那級;一個很大的個人工具,只要只有你自己用,就留在第一級。

    第二,用途會變。朋友圈的小工具哪天開始收錢,就要回頭把收錢那一級補齊。我最擔心的時刻是升級的那一天,因為通常沒人察覺用途已經變了。

    第三,平台內建的安全掃描可以先跑,但別把它當成終點。前面那個資料庫外洩事件裡,發現問題的工程師認為,平台後來推出的安全掃描沒有處理到根本原因。檢查「規則有沒有設」,和檢查「規則有沒有用」,是兩種檢查。

    第四,表格只到一個人能自己負責的程度。醫療、金融、未成年人的資料,需要的是懂法規與資安的專業人員,一張表撐不住。

    這篇的事實查到 2026 年 10 月。下次更新時我會看兩件事:生成平台是否把資料庫權限改成預設開啟、而且會檢查規則有沒有效;以及 Veracode 這類測試裡,資安通過率有沒有跟著寫程式的能力一起往上走。如果兩件都發生,最上面兩級要補的東西會少很多。

    如果你做的東西裡本身就有 AI 功能,例如聊天、摘要、會替人做事的 agent,上線前還有另一組失敗要驗,接著讀〈AI Demo 很成功,為什麼一上線就出事?五條失敗路徑一次看懂(2026)〉。

    結論:發布前先問「這套工具交給誰用」,再決定補齊哪一級防護

    回到那顆連按兩次會多一筆任務的按鈕。

    如果它只在你自己的電腦上,留著也無妨,你知道它在那裡。如果你準備把網址傳給朋友,先開第二個帳號,試試看能不能看到第一個帳號的任務。如果哪天它旁邊多了一個付款按鈕,就先讓連按兩次只留下一筆,再把網址交出去。

    按鈕還是同一顆。改變的是,你在按下發布之前,先想過它要交給誰。

    常見問題

    什麼是 Vibe Coding?

    Vibe Coding 是指透過大語言模型直接說出需求與感受,由 AI 自動完成程式碼生成與部署的開發方式。它大幅降低了寫程式的門檻,讓沒有深入工程背景的人也能在數小時內做出會動的應用雛形。

    做出會動的 demo 之後,第一個該補的防護是什麼?

    如果只是自己用,會動即可;一旦給朋友或外部人士使用,第一個要補的是身分驗證與資料隔離。確認 A 使用者登入後絕對看不到 B 使用者的資料,且所有資料庫存取都在後端透過權限規則(例如 Row Level Security)嚴格防護。

    為什麼「出事時誰受傷」是決定補到哪一級的唯一判準?

    程式碼的行數與功能多寡不是安全標準。如果系統出錯只會讓你自己重新整理頁面,那麼防護可以維持最低限度;如果系統出錯會導致外部使用者的信用卡被重複刷卡、或敏感個資外洩,受傷的是別人,你就必須補齊事務一致性、審計日誌與還原演練。

    什麼時候應該把 Vibe Coding 專案打掉重構?

    當新增一個小功能卻頻繁改壞三個舊功能、AI 每次給出的修復都會引發新的迴圈錯誤時,代表程式碼的架構已經失去局部性。此時與其在雜亂的程式碼上繼續疊加 prompt,不如將現有資料模型與邊界規則抽離出來,重新建立乾淨的模組。

    延伸閱讀

    參考資料

    詞的來歷

    事件與數據

    做法與法規

    留言0

    登入後就能留言。

    登入