如何設計安全可靠的 API ?

如何設計安全可靠的 API ?下圖列出了 12 條原則。

01 使用 HTTPS

02 使用 OAuth 2.0

OAuth 2.0 對設計安全可靠的 API 至關重要,因爲它能夠在不共享用戶憑證的情況下使用代理來訪問資源。它還支持跨多個應用程序和服務的集成,促進了單點登錄(SSO),允許用戶進行一次身份驗證來無縫訪問多個服務或應用程序。

03 使用 WebAuthn

WebAuthn 不依賴於集中式服務器或密碼數據庫。它允許用戶註冊和使用自己的設備(如安全密鑰或生物特徵識別設備)進行身份驗證,消除僅依賴密碼的弱點。通過實現 WebAuthn,API 可以符合 FIDO 等安全標準,滿足合規要求。

04 使用分級 API Key

我們通常要針對系統開放的服務接口設計不同的訪問權限。分級的 API Key 可以提供細粒度的訪問控制。比如,在使用 Stripe 時,我們可以給 “訪問賬戶” 指定一個只讀 API Key,給 “操作賬戶” 指定另一個 API Key。

05 授權

這一條和上一條相關。我們需要給系統內部的各種 API 接口設計訪問授權,遵循 “最小權限” 原則

06 限流

在設計 API 時,需要估計大致容量,並針對容量來限流,從而保護系統。限流的好處有很多,比如防止 DDos 攻擊,防止系統過載,合理分配系統資源等。

07 版本控制

API 版本控制提供了一種結構化的 API 生命週期管理方法,將 API 的管理提升到代碼一個級別,同時確保向後兼容性。它使開發人員能夠引入新功能而不會破壞用戶對於舊版本的依賴。

08 白名單

白名單指定並僅允許預先批准的 IP 地址或用戶訪問 API。這有助於防止常見的安全威脅,如未經授權的訪問、數據泄露、注入攻擊等。它提高了潛在攻擊者的門檻。

09 定期檢查 OWASP API 安全風險清單

The OWASP API Security Top 10 是由 OWASP(Open Web Application Security Project)編制的清單,該組織致力於提高軟件安全性。該清單特別突出了與 API 相關的最關鍵安全風險,旨在提高開發人員、安全專業人員和組織對 API 相關漏洞和威脅的意識,並提供指導,以有效解決這些問題。

10 使用 API 網關

API 網關作爲入站 API 請求的集中入口點。它們能夠實施諸如身份驗證、授權、加密和威脅防護等安全措施。這種集中化能夠在所有 API 中應用一致的安全策略。

11 錯誤處理

有效的錯誤處理機制使 API 能夠優雅地處理意外情況或故障,確保錯誤得到適當地傳達給客戶端,提供更好的用戶體驗。確保返回給客戶端的錯誤消息不會暴露 API 內部運作或基礎架構的敏感信息。

12 輸入驗證

無效或格式不正確的輸入數據可能導致數據丟失、損壞或系統崩潰。輸入驗證在設計安全可靠的 API 中至關重要,有助於防止常見的攻擊,如 SQL 注入、NoSQL 注入和其他基於注入的漏洞。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/u4QZeZoj9YDOwjaqesOcGA