黃小瓜瓜 · Q kangber 智慧助理
vibe codinginformation securityclaude code

Vibe Coding 的 5 種常見資安漏洞:用 Claude Code 一次健檢全找出來

2026年5月31日·10 分鐘閱讀

前言

vibe coding 做網站,最容易被漏掉的就是資安。這篇直接整理出 5 種我自己和身邊的人最常踩到的 vibe coding 資安漏洞,每一種都用白話講清楚:它是什麼、為什麼會發生、不補的話會怎樣。

這篇是寫給用 AI 工具自己做網站或小工具的人看的,不用會寫程式,看完你就會知道自己的網站有哪些地方可能沒顧好。文章最後,我也會示範怎麼用 Claude Code 幫自己的網站做一次資安健檢——這 5 個漏洞,就是我這樣掃出來的。

為什麼 vibe coding 特別容易留下資安漏洞

不是 AI 不安全,而是 AI 只會解決你「說出口」的需求。你說「做一個後台登入」,它就給你一個能登入的後台;你不會特別說「如果有人一直猜密碼怎麼辦」,所以它也不會主動幫你想。功能照常運作、畫面看起來好好的,但該擋的沒擋。

資安漏洞最可怕的共同點,是它們「不會報錯」。一般的 bug 會壞給你看,資安破口不會——網站每天正常運作,漏洞安安靜靜地開著,直到被人利用的那天你才會發現。再加上現在的攻擊多半是機器人在網路上自動掃描,看到沒鎖的門就試,你的網站知名度高不高,跟會不會被掃到完全沒關係。這就是為什麼即使只是個公開讓大家逛的小網站,也得把基本的門鎖好。

先搞懂:一個網站其實是好幾個工具串起來的

要看懂漏洞藏在哪,得先知道一件事——網站不是「一個東西」,而是好幾個工具串在一起,每一塊都是 AI 幫你接起來的。以我自己的網站為例:

網站整體架構示意圖:Claude Code 做前台與後台介面,往外串接 n8n 自動化、Google Sheets 資料儲存、Groq AI 對話,每個串接點都是潛在的資安檢查點
網站不是單一程式,而是多個工具串接而成——每一個交接點都是一道需要上鎖的門

Claude Code 負責所有看得到的部分:部落格、訂閱頁、聯絡頁,還有只有我能進去的後台。n8n 接手背後的自動化,例如有人訂閱之後的後續處理。Google Sheets 被我當成資料庫,存文章和訂閱名單。Groq 則提供網站上那個 AI 對話功能的回話能力。

關鍵在這裡:資安不是「某一個地方」的問題,而是每一個工具交接的地方都要檢查。下面這 5 種漏洞,剛好就分布在這些不同的門上。

Vibe coding 最常見的 5 種資安漏洞

漏洞一:後台登入「猜錯不會被鎖」

很多 vibe coding 做出來的後台,登入頁可以無限次嘗試密碼。有人寫個小程式,一秒鐘試上百組,整夜不停地猜,網站也不會攔。正常該有的是「連續猜錯幾次就先擋一陣子」。少了這道機制,密碼設得再複雜,也只是被猜中的時間長短而已。

漏洞二:登入後的「通行證」沒有上鎖

你輸入帳號密碼登入成功後,網站不會要你每翻一頁就重打一次密碼,而是發給你的瀏覽器一張通行證(也就是 token,一串證明「你已經登入過」的代號)。之後你每點一個後台頁面,瀏覽器就自動把這張通行證夾在請求裡遞給伺服器——而夾帶它的那個小口袋,就是 cookie(瀏覽器自動保管、每次連線自動帶上的儲存格)。

偷懶的做法,是把你的密碼原文直接當成通行證存進 cookie。問題是 cookie 有可能被惡意程式偷讀(這類攻擊叫 XSS),通行證一旦被看到,等於密碼也一起外流。

安全的做法,是發一張蓋了數位防偽章的通行證——這種有防偽章的通行證,業界標準格式就是 JWT(JSON Web Token)。它的「防偽章」是一段用伺服器秘密金鑰算出來的簽章(signature):通行證上只寫看不出密碼的資料(會員編號、權限、到期時間),而且只要有人偷改其中一個字,簽章就對不上,伺服器一驗就知道是偽造的,立刻擋下。

漏洞三:對外開放的 AI 功能會被灌爆帳單

網站上那種誰都能用的 AI 對話框,背後每回一次話都是要付費的。如果沒設任何使用上限,只要有人寫程式對它瘋狂發問,一個晚上就能讓帳單爆掉。這不是資料外洩,是「荷包外洩」,但一樣很痛。

使用次數限制前後對照示意圖:未設限時同一人可短時間內無限次呼叫 AI 功能導致帳單暴增,設限後超過次數會被暫時擋下
同一個人短時間能用幾次?有沒有設限,帳單差很多

漏洞四:聯絡表單、訂閱功能被機器人灌垃圾

跟上一個同根同源:聯絡表單、電子報訂閱這些對外開放的功能,如果沒設「同一個人短時間內最多送幾次」,就可能被機器人在幾分鐘內灌進成千上萬筆垃圾資料。輕則名單變髒、信箱被洗版,重則拖垮整個網站。設一個合理的使用上限,是公開功能的基本門檻。

漏洞五:該檢查身分的功能,忘了檢查

有些功能本來只該給登入後的自己用——例如後台上傳圖片。但很常見的情況是,這道「確認你是不是管理員」的檢查被漏掉了,等於把鑰匙留在門口,外人也能拿來用。這種「忘了加一道檢查」是 vibe coding 最典型的破口:因為功能照常會動,你很難憑肉眼看出它少鎖了一道門。

好消息:這 5 種漏洞都有標準解法

看到這裡你可能有點緊張,但其實不用太擔心。這 5 種都是「老問題」,每一種都有成熟、固定的補法——重點是,你不需要自己寫程式,全都能用「描述」的方式請 AI 幫你加上。先把它們整理成一張對照表:

漏洞不補會發生什麼怎麼補(用講的就行)
登入沒鎖被程式整夜暴力猜密碼「連續猜錯五次就先擋十分鐘」
通行證沒上鎖通行證被偷看,密碼跟著外流改用「看不出密碼、被改就失效」的簽章式通行證
AI 功能無上限被狂發問,帳單一夜爆掉「同一個人每分鐘最多用幾次」
表單沒設限名單、信箱被機器人灌爆同樣設使用上限,再加一道簡單驗證
忘了檢查身分後台功能被外人拿去用每個後台功能進來前都先確認「是不是本人」

這裡面有個會一次解掉好幾項的關鍵觀念,叫做「設使用上限」。不管是 AI 對話、聯絡表單還是訂閱,只要是「對外開放、又會花錢或寫入資料」的功能,都該有一條「同一個人短時間內最多用幾次」的線。這一招,等於同時把上面第三、第四兩種漏洞補掉一大半。

登入那兩項也有共通的心法:補登入漏洞,重點不是把密碼設得更難,而是讓「猜」這件事本身變得不划算——猜幾次就被擋,再快的程式也跑不動。通行證則是換成一張「蓋了防偽章」的版本,伺服器一看就知道是不是自己發的、有沒有被動過手腳。

至於「忘了檢查身分」,沒有什麼巧妙解法,就是回頭把每一個只該給自己用的功能,都補上一句「先確認是不是本人」。麻煩,但必要。在實際幫客戶建流程時我也養成一個習慣:每加一個後台功能,第一件事就是先想「這個如果被外人打開,會怎樣」,再決定要鎖到多緊。

知道「有解法」是一回事,知道「自己到底中了哪幾項」又是另一回事。光看清單,你很難確定自己的網站實際有哪些洞。所以接下來,我把這件事整個交給了 Claude Code。

我怎麼用 Claude Code 幫自己的網站健檢

上面這 5 種漏洞,不是我憑空列的,是我回頭幫自己的網站做健檢時,一個一個被掃出來的。做法其實很簡單:我打開 Claude Code,請它換一個立場——「假設你是想搞破壞的人,你會從這個網站的哪裡下手?」用攻擊者的視角去問,比問「我的網站安全嗎」具體太多。

Claude Code 命令列介面示意圖:輸入「假設你是攻擊者幫我掃一遍網站找出資安破口」後,Claude Code 逐項列出後台登入無嘗試限制、通行證以明文存放、AI 對話無上限、上傳缺身分檢查等問題,並標示表單寫入無注入風險
Claude Code 用攻擊者視角掃過整個網站,逐項列出破口與已做對的部分

它會把每個對外的功能一塊一塊檢查,然後列出哪裡有問題、嚴重程度如何。健檢也不全是壞消息——它同時告訴我,有些地方我沒特別交代,AI 預設就做對了:表單是用純文字方式寫入(避免一種常見的表格被動手腳的風險)、網站只允許顯示來自特定來源的圖片、機密設定也都沒被寫死在程式裡。

在實際幫客戶建自動化流程的經驗裡,我越來越確定:問題不在「AI 不安全」,而在「你沒要求的,它不會多做」。更棒的是,找到洞之後,補洞跟做功能一樣可以用「描述」的方式請它處理——「後台登入連續猜錯五次就先擋十分鐘」,講清楚,它就幫你加上。你不需要看懂程式碼,只需要知道有這些洞該補。

常見問題 FAQ

Q1:我只是做個公開讓大家逛的網站,真的需要管這些嗎?

需要,而且可能比你想的更需要。現在大部分的攻擊不是有人盯上你,而是機器人在整個網路上自動掃描,看到沒鎖的門就試。你的網站知名度高不高,跟會不會被掃到完全沒關係。公開網站因為任何人都進得來,反而最容易被掃到。把基本的門鎖好,不是因為你很重要,而是因為不鎖的代價可能是帳單爆掉或資料被灌爆。

Q2:你說的那個「通行證上鎖」,是不是就是常聽到的 JWT?

概念上就是。JWT 可以想成一張「蓋了防偽章的通行證」:伺服器發出去之後,只要有人動過上面的內容,伺服器一看就知道被改過、立刻作廢;而且它不會把你的密碼直接寫在上面。這跟「直接拿密碼當通行證」差很多。對只有自己或少數人用的後台,這種通行證特別重要——因為一旦通行證被偷看,等於密碼也跟著外流了。

Q3:我不會寫程式,這些漏洞我自己補得起來嗎?

補得起來,因為補洞跟做功能一樣,可以用「描述」的方式請 AI 處理。你不需要看懂程式碼,只需要說清楚要什麼,例如「後台登入連續猜錯五次就先擋十分鐘」。真正的關鍵不在技術,最大的風險從來不是補不起來,而是根本不知道有洞要補。知道要問,問題就解決一半了。

Q4:怎麼讓 Claude Code 幫我找出漏洞?

最有效的方式,是直接請它換立場:「假設你是想搞破壞的人,你會從這個網站的哪裡下手?」用攻擊者的視角去問,比問「我的網站安全嗎」具體太多。你也可以一塊一塊問——後台登入有沒有問題?對外開放的功能會不會被濫用?上傳檔案的地方有沒有檢查身分?把網站拆成幾道門,一道一道檢查,更容易問出真正的破口。

Q5:vibe coding 做的網站,到底能不能正式上線?

能,但上線前一定要做一次資安健檢。Vibe coding 讓「做出功能」變得很快,這是真實的好處;但它沒有改變「上線前要檢查安全」這件責任。把「能用」當成起點、把「健檢過」當成上線門檻,這樣的網站才算真的準備好了。

總結

這 5 種漏洞——登入沒鎖、通行證沒加密、AI 功能被灌爆、表單被灌垃圾、該檢查身分的卻沒檢查——共同點都是「功能會動,但門沒鎖」。Vibe coding 改變的是「把功能做出來」的速度,它沒有、也不可能改變「要為安全負責」這件事。

AI 會幫你把功能做出來,但不會主動幫你把門鎖上——鎖門這件事,得你自己開口要求。而整個健檢過程,我一樣沒有自己去讀程式碼,是請 Claude Code 用攻擊者的視角把網站掃一遍,再用描述的方式請它一個一個把洞補起來。我的工作不是動手,而是知道該問什麼問題。這大概就是 vibe coding 最真實的樣子:你不需要會所有技術,但你需要知道,有些事情不問,AI 就不會替你做。