安全性不應該是事後的考量。不安全的 API 是攻擊者進入您資料庫的直接門戶。在本節中,我們將介紹在 API 生命週期中保護 API 的不可協商最佳實踐。1. 身分驗證 (Authentication) vs. 授權 (Authorization)#
身分驗證(你是誰?):驗證使使用者的身分。使用標準協定如 OAuth 2.0 或 OpenID Connect。避 免自己發明加密方法。
授權(你能做什麼?):驗證權限。僅僅因為使用者已登入並不意味著他們可以刪除資料庫。實作 RBAC(基於角色的存取控制) 或 ABAC(基於屬性的存取控制)。
2. 無處不在的加密#
傳輸中:始終使用 HTTPS (TLS)。永遠不要透過純 HTTP 暴露 API。
靜態:加密資料庫中的敏感資料(密碼、個人身分資訊 PI)。
3. 速率限制與節流#
透過限制用戶端可以發出的請求數量來防止濫用(DDoS 攻擊或錯誤的迴圈)。速率限制 (Rate Limit):「每小時 1000 個請求」。
節流 (Throttle):「每秒 10 個請求」。
當達到限制時返回 429 Too Many Requests 狀態碼。
4. 輸入驗證#
注入攻擊:SQL Injection, Command Injection。
驗證:嚴格的資料結構驗證(使用您的 OpenAPI 定義!)以在錯誤格式的資料到達您的邏輯之前拒絕它。
5. 影子 API (Shadow APIs - 隱藏的威脅)#
「影子 API」是存在於生產環境中但沒有文件或未被管理的 API 端點。這些通常是被遺忘的開發端點。解決方案:嚴格的治理和自動化掃描,以確保每個運行的服務都在您的開發者入口網站中被記錄。
關鍵收穫#
標準:使用 OAuth 2.0 和 TLS;不要發明您自己的安全協定。
可見性:您無法保護您不知道存在的東西。將所有 API 建立目錄。
Modified at 2025-12-29 09:35:19