部署AI生成的應用程式前,務必確認的7項安全檢查清單
用「氛圍編碼」(vibe coding)、AI程式碼生成快速打造的服務,最容易忽略的7個安全漏洞,以及部署前5分鐘完成檢查的方法。
AI程式編碼工具能在一天內把點子變成上線服務。但速度愈快,安全性預設就愈不安全。 如果你是單一開發者,或團隊裡根本沒有開發者,情況更是如此。部署前只要確認以下7項,就能擋下大多數常見事故。
1. 寫死在程式碼裡的金鑰、密碼
請確認API金鑰、資料庫密碼、權杖(token)是否原封不動地寫死在程式碼中。AI很擅長寫出「先能動再說」的程式碼,卻常常把金鑰直接寫進原始碼。這段程式碼一旦上傳到公開儲存庫,幾分鐘內自動化機器人就會蒐集走金鑰。
- 將金鑰移到環境變數(
.env)中,並務必把.env加入.gitignore - 若已經提交過,請立即註銷並重新核發金鑰——就算從歷史紀錄中刪除,也應視為已經外洩
2. 暴露在前端的機密資訊
在瀏覽器中執行的程式碼(前端)裡的任何值,任何人都看得到。 絕對不要把管理員專用的金鑰放進前端。請確認像NEXT_PUBLIC_這種前綴的環境變數中,沒有夾帶敏感資料。
3. 資料存取權限(授權)
登入沒問題,但你能不能看到別人的資料? 只要改一下網址中的id就能看到其他使用者資訊的問題(IDOR),在AI生成的程式碼中非常常見。請務必測試「是否只看得到自己的資料」。
4. 資料庫的資料列層級安全性(RLS)
如果你使用BaaS(無程式碼/後端即服務),請確認每張資料表的存取規則是否都已啟用。有時預設值是「完全公開」。直接確認匿名使用者是否能整張資料表讀取,會比較保險。
5. 有漏洞的函式庫
專案使用的開源套件中,可能混雜著含有已知漏洞(CVE)的版本。只要升級到最新的安全版本,就能消除許多風險。
6. 對輸入值的信任
若把使用者輸入的值原封不動地放進資料庫查詢或系統指令中,就會暴露在注入攻擊之下。請將「使用者輸入永遠要懷疑」當作基本原則。
7. 部署之後也要持續檢查
安全一次不代表永遠安全。每次修改程式碼都可能產生新的漏洞。把檢查加進部署管線,讓它在每次推送(push)時自動執行,就算有人忘記,也還有安全網守著。
以上7項就算沒有工具也能確認,但要人工逐一檢視數百個檔案並不容易。WhiteHat Code只要連接GitHub儲存庫,就會自動掃描上述項目,並告訴你問題出在哪裡、該怎麼修正。自動掃描是免費的。