OWASP 於 2023 年更新了 API 安全風險排名(繼 2019 年版後的再修訂),重新定義並調整了十項關鍵威脅。這次更新聚焦在「物件/屬性層級授權」、「資源耗用」、「商業流程濫用」等更貼近現代 API 使用情境的風險。對企業而言,理解這份清單不只是合規需求,還是設計安全 API、降低營運風險與保護使用者資料的實務指南。
API1:2023 — Broken Object Level Authorization(物件層級授權失效)
問題要點:使用者通過身份驗證後,可以修改 URL、參數或物件 ID 來存取或操作非自身應有之資料(水平或垂直提權)。
危害場景:使用者把 userId=123 改為 userId=122 就能查看或修改他人帳戶資料。
緩解措施:
- 在每一個受保護資源存取點做物件層級的授權檢查(server-side, per-request)。
- 不信任用戶輸入的 ID;以 session / token 內的 subject 進行綁定查驗。
- 實作測試案例(unit/ integration)模擬水平與垂直提權攻擊。
API2:2023 — Broken Authentication(身份認證失效)
問題要點:認證實作錯誤(弱 token 管理、無撤銷機制、錯誤的 session 管理等)使攻擊者能冒用其他使用者身份。
危害場景:長生命期 token 被竊取後可長期存取 API;refresh token 失控得不到撤銷。
緩解措施:
- 使用成熟標準(OAuth2 / OIDC),短生命期 access token + 安全 refresh token 流程。
- 支援 token 撤銷/黑名單、session 管理與異常登入告警。
- 啟用多因素驗證(MFA)與 step-up authentication(敏感操作再驗證)。
API3:2023 — Broken Object Property Level Authorization(物件屬性級授權失效)
問題要點:API 回傳過多欄位或允許批量寫入未檢查的屬性(Mass Assignment),導致敏感欄位洩漏或被未授權修改。
危害場景:使用者可在更新請求中一併修改 isAdmin、salary 等屬性。
緩解措施:
- 以白名單方式序列化/反序列化輸出/輸入,只允許必要欄位。
- 不直接把資料模型映射到 API payload;使用 DTO/ViewModel 層隔離。
- 對於可寫欄位做細粒度授權檢查。
API4:2023 — Unrestricted Resource Consumption(不受限的資源消耗)
問題要點:缺乏速率限制或資源使用控制導致 DDoS、成本暴增或服務降級。API 可能會觸發付費型服務(SMS、郵件)而被濫用。
危害場景:爬蟲或惡意腳本大量呼叫下載大資料集,造成頻寬與計算成本暴增。
緩解措施:
- 在 API Gateway/邊界層實施速率限制(rate limiting)、突發保護(burst control)。
- 為高成本操作(寄信、SMS、推播)加入配額、驗證與人機檢驗(CAPTCHA/step-up)。
- 加入行為式偵測(異常流量告警)與自動封鎖/緩降策略。
API5:2023 — Broken Function Level Authorization(功能層級授權失效)
問題要點:管理功能與一般功能間未清楚分離,或功能端點暴露給未授權使用者。
危害場景:一般使用者可以直接呼叫管理端點(如 POST /admin/create-user)進行敏感操作。
緩解措施:
- 設計角色分離(RBAC/ABAC),確保管理 API 僅對應授權角色可見。
- 在 API Gateway 與應用層分別強化授權檢查(defense-in-depth)。
- 對管理/批次操作啟用更嚴格的審批與審計流程。
API6:2023 — Unrestricted Access to Sensitive Business Flows(不受限的敏感商務流程)
問題要點:商務流程(如購票、退款、優惠領取)被自動化濫用,可能超出系統本意或造成資源/財務損失。此類問題不單是程式缺陷,也可能是流程設計上的薄弱。
危害場景:攻擊者自動化大量搶票或使用 promotion code 導致門票被囤積、公司損失。
緩解措施:
- 在流程層面加入速率限制、使用者行為分析、反機器人機制與風險評估(fraud detection)。
- 設計商務規則(business rule)以偵測異常模式(同一信用卡/同一 IP 短時間多次交易)。
- 對高風險流程啟用人工審核或階段性驗證。
API7:2023 — Server Side Request Forgery(伺服器端請求偽造 SSRF)
問題要點:API 在未充分驗證使用者提供的 URI/主機時替使用者發起請求,使攻擊者能逼迫後端呼叫內網或受保護資源。
危害場景:攻擊者利用 SSRF 存取內部管理介面、metadata service(雲端憑證)或掃描內網。
緩解措施:
- 嚴格驗證與白名單化可被訪問的主機/域名。
- 在執行外部請求時使用代理、隔離網路(eg. vnet/subnet policy)與最小權限 IAM。
- 阻擋 private IP、link-local 及非預期協定的請求。
API8:2023 — Security Misconfiguration(安全組態錯誤)
問題要點:不安全或過於寬鬆的配置(錯誤的 CORS、預設憑證、debug 模式、暴露的管理介面)將擴大攻擊面。
危害場景:測試環境的 debug endpoint 被公開到生產網路;過寬的 CORS 允許任意網域呼叫。
緩解措施:
- 建立安全配置基線(Hardened configuration),在 CI/CD 驗證配置。
- 移除預設帳號、關閉 debug/trace、限制管理介面存取。
- 實施基於環境的安全檢查與自動化掃描(SAST/DAST)。
API9:2023 — Improper Inventory Management(資產/端點管理不當)
問題要點:API 端點、主機與版本管理不當(未記錄、未退役或遺留測試端點)導致易被攻擊者利用。
危害場景:舊版 API(含已知漏洞)仍在內網或 Internet 暴露,且未被納入補丁/監控。
緩解措施:
- 建立 API 庫存(API inventory)與版本管理流程,涵蓋公開/內部/測試端點。
- 把廢棄 API 明確退役並移除對外暴露。
- 對所有端點做週期掃描與清點(API gateway logs、service discovery)。
API10:2023 — Unsafe Consumption of APIs(不安全的第三方 API 使用)
問題要點:系統過度信任第三方 API 的回傳或行為,而第三方被攻擊或錯誤會連帶影響本系統安全。
危害場景:攻擊者入侵第三方服務並利用其 API 欺騙或注入惡意資料,導致主系統資料錯誤或安全事件。
緩解措施:
評估第三方供應鏈風險,建立 SLA 與安全檢核機制(供應商安全問卷、滲透報告)。
對第三方回應做輸入驗證與白名單化(never trust external data)。
實施隔離(circuit breaker)、请求超時、重試限制與降級策略。
綜合緩解策略(跨項通用建議)
- 在 API Gateway 做第一道防線:認證、速率限制、WAF 規則、IP/Geo policy。
- 採用最小權限與細粒度授權:RBAC/ABAC、每個物件/屬性加檢查。
- 資料最小化與輸入白名單:DTO、ViewModel、欄位過濾。
- 強化日誌與監控:包括成功/失敗認證、敏感操作、異常流量;保留週期建議 ≥180 天。
- 供應鏈安全:SCA、SBOM、第三方風險評估。
- 自動化測試:SAST/DAST、API fuzzing、滲透測試與紅隊演練。
- 商務流程風控:對付費或高風險流程加入行為分析、風險計分與人工審核。