Vibe Coder
上線前資安審查:合規清單與自動化掃描工具
上線前資安審查要涵蓋個資合規、認證授權、程式與設定三大類,共十多個檢查項目,並搭配 pip-audit、npm audit、bandit、trufflehog 等自動化掃描工具找出套件漏洞與洩漏的 Secret。有了固定 Checklist,每次上線新功能都能照標準流程走,不用靠記憶。
上線前資安審查:合規清單與自動化掃描工具
學了個資法、OWASP、Secret 管理之後,最容易漏掉的一步,是把這些零散的知識收斂成一份能重複執行的 Checklist。上線後才發現問題,要在有使用者的情況下修,壓力和風險都遠高於上線前。
這篇把上線前該檢查的項目整理成一份完整清單,並介紹幾個能自動找出漏洞的掃描工具,讓資安審查變成一個有標準流程、不靠記憶的固定動作。
你將學到什麼
上線前完整 Checklist
個資合規、認證授權、程式與設定三大類,一次列齊。
自動化掃描工具
pip-audit、npm audit、bandit、trufflehog 怎麼用。
第三方套件的風險
鎖版本、定期更新、防 Typosquatting 的好習慣。
資安事件怎麼應對
偵測、遏制、調查、修復和通報四步驟。
上線前資安 Checklist
個資與合規
- 有隱私權政策頁面,包含蒐集目的和使用者權利。
- 同意勾選框預設未勾選,未勾選無法送出。
- 不必要的欄位已移除(最小蒐集)。
認證與授權
- 密碼用 bcrypt hash,不是 MD5 或明文。
- JWT 有過期時間,Secret 是隨機強字串。
- 每個 API 都有驗證 resource owner。
- 登入 API 有 Rate Limit。
程式與設定
- SQL 用 ORM 或 parameterized query。
- API 回傳只有必要欄位,無敏感資訊。
- 所有 Secret 在環境變數,不在程式碼。
- 正式環境強制 HTTPS。
- CORS 設定白名單,不是萬用符號。
- Log 不記錄密碼、API Key 或個資。
- 第三方套件無已知高危漏洞。
自動化資安掃描工具
| 工具 | 用途 | 使用方式 |
|---|---|---|
| pip-audit | 掃描 Python 套件的已知漏洞 | pip-audit,輸出有漏洞的套件和 CVE |
| npm audit | 掃描 Node.js 套件漏洞 | npm audit,內建不需要安裝 |
| bandit | 靜態分析 Python 程式碼的安全問題 | bandit -r .,掃描整個專案 |
| trufflehog | 掃描 git history 裡有沒有洩漏的 Secret | trufflehog git file://. |
| GitHub Secret Scanning | 自動掃描 push 到 GitHub 的 commit | 在 repo Settings 開啟,免費功能 |
Dependency 安全性
第三方套件是常見的攻擊入口,有幾個好習慣:
- 只安裝需要的套件:每個套件都是潛在的攻擊面,不用就不裝。
- 鎖定版本:用 requirements.txt 或 package-lock.json 鎖定版本,避免自動升級引入問題。
- 定期更新:定期執行 pip-audit 和 npm audit,發現高危漏洞立刻更新。
- 確認套件來源:安裝前確認是官方或知名的套件,不要裝拼字相似的假套件(Typosquatting)。
設定錯誤的常見陷阱
| 陷阱 | 問題 | 正確設定 |
|---|---|---|
| Debug 模式上線 | 顯示詳細錯誤和 Stack Trace | DEBUG=False 在正式環境 |
| CORS 允許所有網域 | 任何網站都能呼叫你的 API | 設定具體的 Origin 白名單 |
| Supabase RLS 未開啟 | 所有使用者能讀取彼此的資料 | 每個 table 都要啟用 RLS 並設 policy |
| 預設的 admin 帳號 | 用預設密碼就能登入管理後台 | 上線前修改或停用所有預設帳號 |
| 開發用的 endpoint 上線 | 測試用的 API 暴露在正式環境 | 用環境變數控制,正式環境不開啟 |
| 不必要開放的 port | 資料庫的 5432 port 對外開放 | 資料庫只允許應用程式的 IP 連線 |
資安事件應對基礎
- 偵測:設好監控和警報,能在第一時間知道有異常(費用突增、錯誤率上升、異常登入)。
- 遏制:立刻隔離受影響的系統,撤銷洩漏的 Key,封鎖異常 IP。
- 調查:透過 Log 找出事件的時間線、影響範圍和根本原因。
- 修復和通報:修補漏洞,如有個資外洩依法通報(台灣個資法 72 小時、GDPR 72 小時)。
把 Checklist 整合到日常開發流程不要等到上線前才做資安 Review:寫新功能時問 AI「這個功能有什麼資安考量」,Code Review 時用「程式與設定」部分過一遍,每週跑一次 pip-audit 或 npm audit,每月檢查各服務的存取 Log。
延伸學習
HE301|Harness Engineering Architecture(12 小時)
兩天十二小時的架構課,處理的是「第一百次仍然成功」。從能力設計出發,逐層拆解知識、脈絡、記憶、規則、工具、工作流、評估與多代理八種架構,每一種都給治理方式與真實案例。12 章 114 課圖文講義、52 張對照表,附兩天的學員講義與投影片 PDF。課程於 2026 年 8 月 30 日實體開課,完整錄影將於課後上傳。
NT$ 12,999
高效思維與腦內模擬:30 日練習與行動系統
每天一件事,三十天把「想到就做」換成「先在腦中跑一遍再動手」。六週依序練目標設定、腦內模擬、結果檢查、反饋與應變、知識萃取、總結與新目標,每天一課圖文,附可以直接填的練習表。週一給概念、週二實作、週三看案例、週四反思、週五收束,跟著節奏走就好,不必自己安排。
NT$ 1,599
常見問答
上線前資安 Checklist 大概要花多久?
把 5-1 節的完整流程走一遍,程式碼審查、Secret 掃描、套件漏洞、設定確認、個資合規加起來大約 45 分鐘,比起上線後出事再處理,這個時間非常划算。
pip-audit 和 bandit 差在哪?
pip-audit 掃描的是第三方套件本身有沒有已知漏洞(CVE),bandit 則是靜態分析你自己寫的 Python 程式碼有沒有常見的安全問題,兩者檢查的對象不同,建議都跑。
Supabase 的 RLS 預設是開的嗎?
不是,Supabase 的磁碟加密和傳輸 HTTPS 是自動啟用的,但 Row Level Security 需要手動對每個 table 開啟並設定 policy,沒開的話任何拿到 API Key 的人都能讀取全部資料。
發生資安事件時第一步該做什麼?
第一步是偵測,靠監控和警報在第一時間發現異常,接著立刻遏制,也就是隔離受影響系統、撤銷洩漏的 Key、封鎖異常 IP,之後才是調查根本原因與修復通報。

