Vibe Coder
Vibe Coder 的資安入門:個資保護與 OWASP Top 10
Vibe Coder 的資安入門:個資保護與 OWASP Top 10
台灣個人資料保護法規定,若因過失洩漏使用者個資,最高可處新台幣兩百萬元以下罰鍰,不是說說而已。攻擊者用自動化工具掃描所有 App,不是只攻擊大公司,SQL Injection、XSS 的攻擊代碼是現成的,小 App 一樣是目標。
AI 不會主動問你這個 App 會蒐集個資嗎、需要加密嗎,資安要你主動要求。這一課把個資保護的基本觀念、最常見的三種漏洞,整理成一份你上線前就能照著做的 Checklist。
你將學到什麼
為什麼 Vibe Coder 需要懂資安
小 App 也是攻擊目標,資安問題上線後才修代價很高。
個資法基礎
最小蒐集、告知同意、安全保護、當事人權利四個核心原則。
OWASP Top 10 精選三個
Injection、認證漏洞、敏感資料暴露,最貼近 Vibe Coder 的三種風險。
上線前資安 Checklist
八個項目,逐項確認,把知道變成做到。
為什麼 Vibe Coder 需要懂資安
資安不是只有大公司才需要考慮,任何有使用者的 App 都有責任:蒐集了個資就要保護,Email、手機號碼、地址、付款資訊都是個資,蒐集了就要負責保護;最小蒐集原則,不需要的個資就不要蒐集;告知同意,使用者應該知道你蒐集了什麼、怎麼用,沒有告知同意就蒐集是違法的。
個資法基礎:你的 App 蒐集了什麼
| 概念 | 說明 | Vibe Coder 要做什麼 |
|---|---|---|
| 個人資料 | 能直接或間接識別個人的資訊,姓名、Email、電話、IP 位址等 | 確認 App 蒐集了哪些個資,有沒有必要 |
| 最小蒐集 | 只蒐集完成服務所必要的最小量個資 | 每個表單欄位問自己:不填會怎樣 |
| 告知同意 | 蒐集前要告知目的,取得使用者同意 | 隱私權政策頁面加上勾選同意框 |
| 安全保護 | 要採取適當的技術措施保護個資 | 密碼要 hash、傳輸用 HTTPS、資料表加權限隔離 |
| 當事人權利 | 使用者有權要求查詢、更正、刪除自己的個資 | 提供刪除帳號的功能 |
OWASP Top 10:Vibe Coder 最需要注意的三個
OWASP Top 10 是最常見的 Web 安全漏洞清單,其中三個和 Vibe Coder 最相關。
一、Injection:注入攻擊
使用者輸入的資料被當成程式碼執行,最常見的是 SQL Injection。解法是永遠用 ORM 或 parameterized query,絕對不要把使用者輸入直接拼進 SQL 字串。
# 危險:直接拼字串
query = f"SELECT * FROM users WHERE email='{user_input}'"
# 安全:用 parameterized query
query = "SELECT * FROM users WHERE email=?"
cursor.execute(query, (user_input,))
二、Broken Authentication:認證漏洞
密碼明文存資料庫、Token 不過期、沒有 Rate Limit 讓人暴力破解。解法是密碼用 bcrypt 雜湊、JWT 設過期時間、登入失敗要有 Rate Limit。
三、Sensitive Data Exposure:敏感資料暴露
API 回傳太多欄位,包含不該給前端的資料,Log 裡有密碼或 Key,HTTP 沒有加密。解法是 API 只回傳必要欄位、Log 不印敏感資料、強制使用 HTTPS。
AI 生成程式的資安盲點
| 盲點 | AI 常做的 | 正確做法 |
|---|---|---|
| 密碼儲存 | 明文存資料庫,或只用速度過快的雜湊演算法 | 用 passlib 之類的套件搭配 bcrypt |
| SQL 查詢 | 直接拼字串 | 用 ORM 或 parameterized query |
| 錯誤訊息 | 把詳細 traceback 回傳給前端 | 前端只看通用錯誤,詳細存 Log |
| API 回傳 | 回傳整個資料庫物件,包含所有欄位 | 只回傳前端需要的欄位 |
Vibe Coder 的資安 Checklist
每個 App 上線前,逐項確認以下八個項目。
- 密碼有用 bcrypt 或 Argon2 雜湊,不是 MD5 或明文。
- 所有傳輸都走 HTTPS,部署後確認憑證正常。
- 資料庫有 Row Level Security 或權限控制。
- API 只回傳必要欄位,沒有多餘的個資。
- 使用者輸入有驗證,沒有直接拼進 SQL 或 HTML。
- Log 裡沒有密碼、API Key、個人資料。
- 有隱私權政策頁面,即使只是簡單說明。
- 使用者能刪除自己的帳號和資料。

