Vibe Coder

Vibe Coder 的資安入門:個資保護與 OWASP Top 10

只要 App 有使用者,就有保護個資的法律責任,最小蒐集與告知同意是最基本的原則。AI 生的程式預設不安全,SQL Injection、密碼明文儲存、API 回傳過多欄位是最常見的三種漏洞,上線前務必逐項檢查資安 Checklist。
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、資料表加權限隔離
當事人權利使用者有權要求查詢、更正、刪除自己的個資提供刪除帳號的功能
台灣個資法與 GDPR如果你的使用者有歐盟居民,要遵守 GDPR,規定更嚴格;台灣個資法適用於台灣境內的業務。兩者核心原則相同:最小蒐集、告知同意、安全保護、當事人權利。

OWASP Top 10:Vibe Coder 最需要注意的三個

OWASP Top 10 是最常見的 Web 安全漏洞清單,其中三個和 Vibe Coder 最相關。

使用者輸入 → SQL 查詢登入/Token 驗證API 回傳資料Injection 注入攻擊Broken AuthenticationSensitive Data Exposure
把 OWASP Top 10 對應到一次請求會經過的每一步。

一、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、個人資料。
  • 有隱私權政策頁面,即使只是簡單說明。
  • 使用者能刪除自己的帳號和資料。
資安問題事後很難修資料庫設計的加密問題、API 設計的授權漏洞,上線後要修代價很高。從設計階段就做對,比事後補救划算得多。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

小型個人專案也需要在意資安嗎?
需要。攻擊者用自動化工具大規模掃描所有 App,不是只鎖定大公司,SQL Injection、XSS 這類攻擊代碼是現成的,任何有使用者的 App 都可能成為目標。
什麼是最小蒐集原則?
只蒐集完成服務所必要的最小量個資。每個表單欄位都該問自己這個欄位不填會怎樣,不需要的個資就不要蒐集,不蒐集就不需要保護,是最省力的資安策略。
SQL Injection 要怎麼避免?
永遠用 ORM 或 parameterized query,絕對不要把使用者輸入直接拼進 SQL 字串。這是最常見也最容易被 AI 生成程式忽略的漏洞。
密碼應該用什麼方式儲存?
密碼要用 bcrypt 或 Argon2 這類專為密碼設計的雜湊演算法處理,絕對不能用明文儲存,也不建議用 MD5 這類速度太快、容易被暴力破解的演算法。