iPAS AI 應用規劃師 初級 科目二 生成式 AI 應用與規劃

Vibe Coding 生成的程式碼如何降低品質與安全風險?

原題 19

某新創公司採用 MVP(Minimum Viable Product)策略,導入 Vibe Coding 以加速開發,雖然初期能快速產出可運作功能,但技術主管提醒,在正式上線前仍可能存在程式碼品質與安全風險。下列哪一項措施最合理,以降低品質與安全問題?

白話

某新創公司用 MVP 策略快速開發,靠 Vibe Coding 短時間內產出可以跑的功能。技術主管提醒:在正式上線前,程式碼的品質和安全性可能還有問題。

問你:要降低 Vibe Coding 生成程式碼的品質與安全風險,上線前應該採取哪一項措施?

點選你的答案。

01 總結

一句話總結

AI 生成的程式碼不能直接上線,必須納入人工審查、重構與安全測試的流程,才能降低品質問題和安全漏洞的風險。

02 情境

先感受問題:Vibe Coding 快速出貨,但安全誰來把關?

假設你是「快閃科技」新創公司的技術主管,團隊三個月就用 Vibe Coding(AI 生成程式碼)做出一個訂閱制 SaaS 產品原型。創辦人很興奮,想直接讓用戶付費使用。

你心裡有個聲音:這三個月裡,工程師主要在「告訴 AI 要做什麼」,然後讓 AI 生成,再快速測試功能有沒有跑起來。但有多少安全細節被跳過了?登入邏輯有沒有被 bypass 的漏洞?資料庫查詢有沒有 SQL 注入的風險?付款流程的邊界條件有沒有都處理到?

這些問題靠「提示詞更好」是解決不了的,因為問題不是 AI 寫得不夠好,而是整個開發過程缺少了人工的驗證環節。真正的保障只有一種:在上線前,讓人工審查、重構和安全測試把這些漏洞找出來。

03 對照

直接讓 AI 程式碼上線,會有哪些風險

  1. 安全漏洞:AI 生成的程式碼可能包含已知的安全弱點(如未過濾的使用者輸入、硬編碼的密碼、不當的 API 授權),這些問題只有安全測試才能系統性找出來
  2. 邏輯邊界問題:功能在「一般路徑」可以跑,但邊界條件(如空值、極端數字、並發請求)沒有測試,上線後用戶就會觸發
  3. 程式碼可維護性差:AI 生成的程式碼有時結構混亂、沒有適當的抽象、重複邏輯四散,沒有重構直接上線,後期維護成本極高
  4. 依賴的函式庫有安全問題:AI 可能建議使用有已知漏洞的舊版函式庫,安全掃描才能發現這些問題
  5. 法規合規風險:涉及個人資料、金融交易的系統有法規要求,AI 不一定了解台灣的法規細節,需要人工確認
04 解法

三道關卡:審查、重構、安全測試

「快閃科技」在上線前建立了三道關卡:

第一關:程式碼審查(Code Review)。資深工程師逐段審閱 AI 生成的程式碼,確認邏輯是否正確、有沒有明顯的設計問題。特別關注身份驗證、資料存取、付款流程這些高風險模組。

第二關:重構(Refactoring)。審查後發現的問題:重複程式碼整合、混亂的結構拆分、命名不清楚的重新命名。這不是為了讓程式碼「更漂亮」,而是讓後期維護者(可能是你自己半年後)能看懂和修改。

第三關:安全測試(Security Testing)。使用靜態分析工具掃描程式碼中的已知安全弱點,進行滲透測試確認登入、授權、資料保護機制是否有漏洞。

三關都過,才是真的可以上線的程式碼。Vibe Coding 負責速度,這三關負責品質。兩者缺一不可。

這就是選項 C 講的:將生成程式碼納入審查、重構與安全測試流程

技術版:Vibe Coding 時代的工程品質管控

Vibe Coding 的本質:Vibe Coding 是一種開發範式,開發者用自然語言描述需求,由 AI(如 Claude、Cursor、GitHub Copilot)生成實作程式碼,開發者負責驗收和整合。優點是極大加速原型開發速度;缺點是繞過了傳統開發流程中許多品質管控環節。

為什麼提示詞優化解決不了所有問題:更好的提示詞可以讓 AI 更接近你的需求,但 AI 仍然不知道你的業務邏輯細節、安全要求、效能需求。「我要一個安全的登入系統」這個提示詞,AI 給的是它認為「一般意義上安全」的程式碼,不是針對你的用戶行為模式和攻擊面設計的安全機制。

安全測試的工具和方法:

  • 靜態分析(SAST):掃描程式碼找已知安全弱點,如 SonarQube、Semgrep
  • 依賴套件掃描:檢查使用的函式庫是否有已知漏洞,如 npm audit、OWASP Dependency Check
  • 滲透測試:模擬攻擊者嘗試滲透系統,找出實際可利用的漏洞

為什麼出題者要考這題:Vibe Coding 和 MVP 策略是目前新創界非常流行的做法,AI 應用規劃師需要理解快速開發和品質保障之間的平衡。這題考的是「即使用了 AI 加速,人工品質管控流程仍然不可省略」這個重要原則。

05 陷阱

為什麼其他選項是錯的

A直接沿用 AI 生成程式碼至正式環境,以降低開發成本

字面在說什麼

省掉審查和測試的成本,AI 說可以就直接上線。

為什麼不對

「降低開發成本」是短視的計算。AI 程式碼直接上線後若出現安全事件(資料外洩、系統被攻擊),修復成本和商譽損失遠大於前期品質管控的投入。省掉審查的成本是以無法量化的安全風險換來的,對企業來說不划算也不負責任。

誰會選錯

只看短期成本、沒有考慮風險成本的人。或者以為「MVP 就是能跑就好」的人,忽略了 MVP 也要保護用戶資料。

B持續優化提示詞,即可避免大部分品質問題

字面在說什麼

提示詞寫得更好、更精確,AI 生成的程式碼就會沒有品質問題。

為什麼不對

提示詞優化確實能改善 AI 生成程式碼的品質,但有上限。安全問題不是靠提示詞解決的:安全弱點很多都是「在你的特定系統的特定情境下才成立」的,AI 沒有你系統的完整上下文;複雜的業務邏輯和邊界條件,只有對業務有深度理解的人才能測試到。提示詞優化是輸入優化,不是輸出驗證。

誰會選錯

對 Prompt Engineering 過度信仰的人,以為只要提示詞夠好,AI 就能輸出完美程式碼。提示詞影響生成方向,但不能替代工程驗證流程。

D限制開發者修改 AI 生成之程式碼架構,以維持一致性

字面在說什麼

不讓工程師改 AI 生成的程式碼架構,確保程式碼風格一致。

為什麼不對

這是完全反向的做法。工程師審查和重構 AI 程式碼正是品質管控的核心動作。禁止修改意味著 AI 的所有問題都被鎖進去無法改善。「維持一致性」不應該犧牲品質和安全性,而且 AI 生成的程式碼通常本身風格就不一致,限制修改根本達不到一致性的目標。

誰會選錯

對「一致性」有誤解的人,以為只要不改 AI 的結構就能保持一致。實際上好的一致性來自編碼規範(linting rules、style guide),不是靠鎖死 AI 輸出。

06 變形

同個考點下次怎麼變形

變形 1

MVP 策略下,哪些安全問題是「可以先欠技術債」、哪些是「絕對不能犯的」?

直覺

MVP 要快,真的每個安全問題都要解決嗎?

答案

可以先欠的技術債:程式碼結構不夠優雅、某些功能的錯誤訊息不夠清楚、部分邊界條件的用戶體驗不完美。絕對不能犯的:用戶資料保護(密碼加密、個資保護)、身份驗證漏洞、付款安全。前者影響的是維護成本;後者影響的是用戶安全和法律責任,MVP 也必須達標。

變形 2

「重構(Refactoring)」和「修 bug」有什麼不同?

直覺

都是改程式碼,差在哪?

答案

修 bug 是「讓原本錯誤的程式碼變正確」,功能行為改變了。重構是「在不改變程式碼外部行為的前提下,改善程式碼的內部結構」:讓程式碼更易讀、消除重複、改善架構。重構後功能不變,但程式碼變得更容易維護和擴展。AI 生成的程式碼常需要重構,使其符合專案的架構規範。

變形 3

安全測試和功能測試的差別是什麼?

直覺

測試不就是「確認程式碼有沒有跑起來」?

答案

功能測試確認「程式碼的功能按照規格運作」:登入成功應該跳轉到首頁。安全測試確認「程式碼在惡意輸入和攻擊情境下不會暴露漏洞」:如果我輸入惡意的 SQL 字符,系統是否拒絕?如果我偽造 JWT token,是否能繞過授權?安全測試需要以「攻擊者思維」主動尋找弱點。

變形 4

為什麼說「Vibe Coding 是加速工具,不是品質工具」?

直覺

Vibe Coding 既然能快速出功能,不也代表品質還不錯?

答案

Vibe Coding 加速的是「從需求到能跑的程式碼」這段距離,大幅縮短初期開發時間。但「能跑」不等於「安全」「可維護」「效能佳」「符合業務邏輯細節」。品質需要驗證流程來保障,而驗證流程需要人的判斷,這部分 AI 沒辦法替代。

變形 5

企業在導入 Vibe Coding 工作流時,應該建立什麼規範?

直覺

全公司都用 Vibe Coding,有沒有什麼需要事先規定的?

答案

建議規範包括:哪些模組允許用 Vibe Coding(原型、非核心功能可以,安全關鍵模組需更嚴謹)、AI 生成程式碼必須標注(讓 reviewer 知道哪些是 AI 寫的)、Code Review 是強制的(不能因為 AI 生成就跳過)、安全敏感的功能需要額外的安全測試。制度比個別工程師的判斷更可靠。

07 延伸

想再往下看,這 5 個

出處

iPAS 經濟部產業人才能力鑑定 ・ 115 年第一次 iPAS AI 應用規劃師 初級 科目二 生成式 AI 應用與規劃 第 19 題

查看官方原文 PDF