客戶端和服務器之間的事務包括向特定端點發出的請求,該請求由基本 URL(服務器域名)、方法(URL 的路徑部分)和可選參數組成。請求指定要使用的方法(通常稱為動詞),并可能包含正文(通常為 JSON 或 XM L)。
服務器在驗證請求的身份和授權后,會處理請求并返回響應,其中包括指示請求狀態的 HTTP 響應代碼。響應可能以不同格式和編碼方案返回數據負載。
為什么 API 安全性如此重要?
全球 API 的數量正在迅速增長,Postman 報告稱,去年增長率為 39%。Gartner 預計,到 2022 年,90% 的 Web 應用程序在 API 中暴露的攻擊面將比在 UI 中暴露的攻擊面更多,API 濫用將成為最常見的攻擊媒介。API 對攻擊者有很大吸引力,因為它們通常通過記錄在案的終端節點暴露在外,攻擊工具可以輕松自動化攻擊。
API 的普遍性、相對容易攻擊的特性以及暴露的數據價值,使得 API 安全成為安全和風險專業人員的首要任務。幸運的是,開發人員可以通過一些成熟的模式和實踐來有效降低 API 漏洞的風險。
API 安全的基礎
保護 API 的第一步是深入了解 API 的基本元素,包括:
傳輸層安全性 (TLS)
傳輸層安全性 (TLS) 協議用于確保通過 TCP/IP 網絡的安全通信。它加密數據以防止在傳輸過程中被竊聽,并確??蛻舳四軌蝌炞C服務器的完整性(通過證書檢查)。盡管證書管理曾是一個挑戰,但有了 Let’s Encrypt 等服務提供商,證書部署變得更加簡單。所有新的 API 開發都應將保護通信網絡作為首要任務。
速率限制
公共 API 作為企業的門戶,必須防止拒絕服務 (DoS) 攻擊。攻擊者可能會發起自動化攻擊,影響合法用戶的性能,甚至耗盡服務器資源。速率限制可以緩解這些問題,限制從特定 IP 地址到終端節點的重復訪問。這通常通過 API 網關或專用防護產品(如 WAF 或 API 防火墻)來實現。
訪問控制
訪問控制是 API 安全的核心,包含兩個方面:
- 身份驗證:確定誰在訪問 API。
- 授權:確定用戶在 API 中可以做什么。
無身份驗證
對于只讀的公共 API,可能不需要身份驗證,通常用于信息和狀態查看。
基本身份驗證
基本身份驗證是一種過時的方法,通過將用戶名和密碼編碼為 Base64 字符串進行傳輸,缺乏安全性,不建議用于新設計。
會話 Cookies
通過登錄頁面進行身份驗證后,客戶端存儲會話 Cookie 進行后續請求。這種方法存在泄露和生命周期管理問題,也不推薦使用。
承載者認證
通過使用用戶憑證的哈希值來改進基本身份驗證,但仍存在中間人攻擊的風險。
API 密鑰
API 密鑰是常用的身份驗證方法。服務器生成密鑰供客戶端使用,客戶端通過標頭提交密鑰進行驗證。雖然 API 密鑰適合服務 API,但在客戶端應用程序中的安全存儲和生命周期管理仍然是挑戰。
OAuth 2.0
OAuth 2.0 是廣泛使用的身份驗證和授權標準,允許客戶端通過授權服務器驗證身份并獲得訪問令牌。最常用的流包括授權碼流程和使用 PKCE 的授權代碼流程,后者增強了安全性,適用于無法存儲客戶端密鑰的應用。
OpenID Connect (OIDC)
OpenID Connect 是建立在 OAuth 之上的身份層,支持通過 JWT 令牌獲取用戶信息,如用戶名和電子郵件,并驗證信息的完整性。
授權
一旦確定客戶端身份,服務器需要評估其訪問資源的權限。訪問控制通常在請求級別和對象級別進行。復雜的授權要求最好使用專用庫或框架(如 Open Policy Agent)來處理。
JSON Web 令牌 (JWT)
JWT 用于在客戶端和服務器之間安全傳輸信息。JWT 由標頭、聲明和簽名組成。標頭提供有關算法的信息,聲明部分包含服務器特定的數據,簽名用于驗證消息的完整性。JWT 的廣泛使用要求在生產環境中小心處理,以避免常見的陷阱。
安全的 API 生命周期
有效的 API 安全性理想地建立在完善的 DevOps 流程的基礎上。以下是 API 生命周期中關鍵的安全階段和最佳實踐:
設計
強大的 API 安全性從設計階段開始,以確保充分考慮以下內容:
- 基于操作環境的身份驗證和授權要求:選擇合適的 OAuth 流程。
- 了解基于用戶權限的訪問控制模型:確保訪問控制符合用戶權限。
- 數據隱私和保護要求:遵循 GDPR、PII、PCI-DSS 等數據保護標準。
- 適用的法規和治理要求:符合相關法規和治理標準。
- 新出現的威脅和攻擊方法:了解最新的威脅模型,以減少攻擊面。
- 威脅建模:進行正式的威脅建?;顒?,以了解所有攻擊面和弱點。
- OpenAPI 規范:定義明確的 OAS 定義是強大且安全的 API 設計的基礎,包括請求和響應數據驗證、端點規范和安全性。
建設
API 后端的構建是確保 API 安全的關鍵因素:
- 設計優先方法:使用 OAS 定義進行審計和審查,確保規范的完整性。
- 代碼生成工具:使用工具如 Swagger Codegen 自動生成 API 后端代碼。
- 框架安全建議:查閱特定框架(如 Spring Boot、ASP.NET Core)的安全建議,特別是有關身份驗證和授權中間件的建議。
測試
設計優先方法的一個主要優點是能夠利用工具自動化測試:
- API 功能測試:確保 API 正常工作。
- 性能和負載測試:評估 API 的性能。
- 安全測試:檢測潛在的安全漏洞。
- API 一致性測試:確保 API 按照 OAS 定義運行,并產生預期的響應。
保護
某些 API 保護措施應在網關級別實施:
- 速率限制:在 API 流量到達 API 之前進行速率限制。
- 外部保護:通過 API 網關實現深度防御,減少單點故障的可能性。
API 網關
許多優秀的 API 網關可用于主要云平臺:
- OAS 定義提取:網關通??梢蕴崛?OAS 定義。
- 策略實施:管理速率限制、JWT 驗證、傳輸層安全性。
- 可觀察性和監控:提供可觀察性和監控功能。
WAF 和 WAAP
Web 應用程序傳統上依賴 WAF 來抵御攻擊:
- WAF 功能:充當客戶端和服務器之間的代理,過濾流量中的惡意內容。
- 下一代 WAF 和 API 保護產品:使用基于代理的保護、RASP、機器學習或人工智能功能提供更接近應用層的保護。
API 微防火墻
API 微防火墻通過積極的安全模型強制執行 OAS 合同:
- 專用保護:只允許符合協議的方法、端點和數據。
- 內存占用小:為微服務設計,內存占用較小。
監測
API 生命周期的最后一個要素是主動監控:
- 遙測和日志記錄:嵌入到 API 后端代碼中,以提供操作洞察。
- 警報集成:將來自網關和防火墻的警報集成到 SIEM 和 SOC 中,以便進行安全監控和隔離。
治理
API 安全還包括從設計到運營的全過程治理:
- 合規性和隱私要求:確保遵守所有法規、合規性和隱私要求。
- API 清單管理:維護最新的 API 清單,減少影子 API 和僵尸 API 的普遍性,管理良好的清單對于減少 API 攻擊面至關重要。
常見的 API 攻擊方法(和防御措施)
了解常見的 API 攻擊方法可以幫助開發人員更好地保護 API。以下是主要的攻擊方法及其防御措施:
1. 機器人攻擊
描述:惡意爬蟲程序用于抓取大量數據或 PII。
防御措施:
- 實施速率限制和 IP 黑名單。
- 使用驗證碼(CAPTCHA)驗證用戶行為。
2. API Discovery 和 Endpoint Enumeration
描述:攻擊者試圖獲取有關 API 及其終端節點的知識。
防御措施:
- 隱藏 API 終端節點,并使用復雜的路徑。
- 使用強身份驗證和授權機制。
3. 拒絕服務攻擊(DoS)
描述:通過使服務器過載來使 API 脫機。
防御措施:
- 實施速率限制。
- 使用防火墻和分布式拒絕服務(DDoS)保護服務。
4. 憑證填充攻擊(Credential Stuffing)
描述:使用常見密碼字典攻擊 API。
防御措施:
5. 賬戶接管攻擊(Account Takeover)
描述:利用密碼重置進程或其他手段接管賬戶。
防御措施:
- 強化密碼重置過程。
- 實施速率限制和強多因素身份驗證。
6. API 磨損和分頁攻擊
描述:惡意爬蟲抓取整個數據存儲,或利用分頁功能遍歷所有頁面。
防御措施:
- 對同一賬戶或 IP 地址的請求實施限制。
- 檢測異常請求模式并采取措施阻止。
這些防御措施有助于減少常見的 API 攻擊風險,并增強 API 的安全性。
常見漏洞
OWASP 組織發布了專門的 OWASP API 安全 10 大漏洞,描述了前 10 個最常見的 API 漏洞類別。以下是主要的 API 漏洞及其防御措施:
1. 身份驗證漏洞(Authentication Vulnerabilities)
描述:身份驗證損壞或缺失是 API 漏洞的主要原因。常見問題包括未受保護的終端節點、令牌和密鑰泄漏、用戶憑據公開和密碼重置機制濫用。
防御措施:
- 強制實施身份驗證機制。
- 對所有敏感終端節點進行身份驗證檢查。
- 使用 OAuth 等現代身份驗證標準來保護令牌和密鑰。
2. 對象級漏洞(Object-Level Vulnerabilities)
描述:這些漏洞允許用戶訪問不屬于他們的對象。攻擊者通過操縱對象標識符來探測不良的實現。
防御措施:
- 進行全面的訪問控制檢查,確保用戶只能訪問他們有權訪問的對象。
3. 函數級漏洞(Function-Level Vulnerabilities)
描述:用戶能夠訪問未授權的 API 終端節點或功能。根本原因是缺乏適當的授權檢查。
防御措施:
- 對所有 API 端點實施細粒度的權限控制。
- 確保不同權限級別的用戶只能訪問他們有權訪問的功能。
4. 數據漏洞(Data Vulnerabilities)
描述:
- 過度數據泄露:API 返回超過預期的數據,如敏感的用戶信息。
- 批量分配:攻擊者注入額外的請求數據,這些數據被錯誤地存儲在底層記錄中。
防御措施:
- 返回最小必要數據。
- 避免直接暴露底層數據存儲。
- 使用簡化的數據對象進行操作。
5. 配置漏洞(Configuration Vulnerabilities)
描述:包括錯誤的操作或運行時配置,如缺少傳輸加密、接受未使用的 HTTP 方法、冗長的錯誤消息和不必要的 HTTP 標頭。
防御措施:
- 定期審計和修正配置設置。
- 確保所有傳輸使用加密。
- 避免接受不必要的 HTTP 方法。
6. 實現漏洞(Implementation Vulnerabilities)
描述:包括輸入注入(SQL、命令、LDAP 等)、缺乏數據清理、使用易受攻擊的庫或組件、框架配置錯誤等問題。
防御措施:
- 對所有輸入進行適當的驗證和清理。
- 使用安全的庫和組件,并定期更新。
- 進行安全代碼審查,避免框架配置錯誤。
這些漏洞和防御措施有助于確保 API 在開發和部署過程中的安全性。通過實施這些防御策略,開發人員可以顯著減少 API 面臨的安全風險。
保護 API 的最佳實踐
要提高 API 的安全性,可以采取以下幾種最佳實踐:
1. 始終使用 TLS
描述:傳輸層安全性(TLS)應作為所有 API 端點的標準配置。確保正確配置安全標頭,并處理證書的輪換過程。
措施:
- 強制使用 HTTPS。
- 配置正確的安全標頭和證書管理流程。
2. 使用 OAuth2 進行單點登錄(SSO)
描述:OAuth2 標準提供了成熟的身份驗證和授權機制,避免自己設計和實現復雜的身份驗證工作流。
措施:
- 采用 OAuth2 標準進行授權。
- 使用 OAuth playground 和權威指南進行最佳實踐學習。
- 如果 OAuth 不適用,使用 API 密鑰,并確保密鑰的范圍有限,易于撤銷和替換。
3. 練習良好的 API 密鑰和令牌管理
描述:確保 API 密鑰和令牌的安全性,避免明文存儲或提交到版本控制系統中。
措施:
- 不將密鑰和令牌提交到版本控制系統。
- 不在終端設備或 CI/CD 管道中以明文形式存儲密鑰。
- 使用短期密鑰和最低權限的令牌。
4. 使用策略代理進行細粒度授權管理
描述:在 API 的每個函數端點實施訪問控制時,使用中央授權終端節點或授權框架來避免實現錯誤。
措施:
5. 消除未使用的端點方法
描述:刪除未使用的 HTTP 方法(如 DELETE、OPTIONS、PATCH)以減少攻擊面。
措施:
- 在框架中顯式刪除無效方法。
- 定期審查和更新 API 端點。
6. 應用配額和速率限制
描述:通過設置配額和速率限制來防止拒絕服務攻擊和大規模數據泄露。
措施:
- 實施配額和速率限制。
- 在代碼和防火墻或網關級別實現此類防御。
7. 使用 API 防火墻和網關
描述:利用云平臺提供的 API 網關服務和定制的 API 微防火墻來加強 API 安全。
措施:
- 配置 API 網關,實施速率限制和傳輸安全。
- 使用定制的 API 微防火墻來解決特定安全問題。
8. 管理 API 清單
描述:積極管理和審查 API 清單,識別和處理過時或棄用的 API。
措施:
- 使用標準和最佳實踐管理新 API。
- 定期審查和更新 API 清單。
9. 使用經過驗證的標準庫
描述:依賴成熟的標準庫來處理常見模式和工作流程,避免自行實現可能存在安全漏洞的功能。
措施:
- 使用社區認可的標準庫進行 OAuth2 授權、JWT 令牌驗證等。
- 參與社區,貢獻修補程序和更新。
這些措施有助于保護 API 免受各種安全威脅,并確保其安全性和可靠性。
結論
開發人員在確保 API 的功能性和安全性方面面臨著顯著挑戰。為了保護 API 不被攻擊者利用或破壞,安全性應貫穿 API 開發的整個生命周期。以下是關鍵點:
- 深入理解關鍵概念:開發人員必須清楚授權和身份驗證等關鍵安全概念,以便正確實施和維護 API 安全。
- 采用最佳實踐:使用已驗證的安全措施和最佳實踐,如始終使用 TLS、實施 OAuth2 認證、管理好 API 密鑰和令牌、以及使用 API 防火墻和網關來增強 API 的保護層。
- 預見攻擊手法:開發人員應像對手一樣思考,了解潛在的攻擊方法和漏洞,從而更好地保護 API。例如,防止爬蟲程序濫用、應對拒絕服務攻擊、處理憑證填充攻擊等。
- 利用技術工具:開發人員和安全團隊應利用現代技術工具,如 API 微防火墻和 API 網關,來添加額外的保護層并增強 API 的安全性。
通過結合這些方法和工具,開發人員可以顯著提高 API 的安全性,確保 API 在抵御各種安全威脅方面表現良好。
原文鏈接:REST API Security Essentials
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
国产在线视视频有精品|
丰满白嫩尤物一区二区|
1区2区3区精品视频|
经典三级在线一区|
欧美大尺度电影在线|
日韩不卡免费视频|
丁香婷婷综合色啪|
久久亚洲二区三区|
久久久久久电影|
成人免费毛片高清视频|
国产亚洲女人久久久久毛片|
成人黄色片在线观看|
亚洲激情男女视频|
欧美电视剧免费观看|
国产精品91一区二区|
成人免费在线视频观看|
欧美精品日韩精品|
国产成人欧美日韩在线电影|
一区二区三区日韩欧美精品|
精品日本一线二线三线不卡|
不卡视频在线观看|
丝袜美腿亚洲色图|
中文字幕一区二区三区在线播放|
欧美日韩成人综合天天影院
|
99久久99久久久精品齐齐|
亚洲免费在线观看视频|
精品免费日韩av|
91蜜桃网址入口|
国产一级精品在线|
天使萌一区二区三区免费观看|
国产清纯白嫩初高生在线观看91
|
麻豆精品精品国产自在97香蕉|
国产精品伦一区二区三级视频|
欧美一区二区三区在线观看视频|
jlzzjlzz亚洲女人18|
国产精品一二一区|
久久国产精品99久久久久久老狼|
亚洲第一会所有码转帖|
伊人性伊人情综合网|
中文字幕+乱码+中文字幕一区|
在线播放国产精品二区一二区四区|
国产电影一区在线|
国产一二精品视频|
国产成人久久精品77777最新版本
国产成人鲁色资源国产91色综
|
亚洲国产一区二区三区青草影视
|
欧美一区二区久久久|
欧美日韩中文字幕一区二区|
91亚洲国产成人精品一区二区三|
丁香婷婷深情五月亚洲|
国产成人精品一区二区三区网站观看|
蜜臀国产一区二区三区在线播放|
天堂成人国产精品一区|
日韩激情av在线|
日本午夜一本久久久综合|
亚洲一区二区视频|
日韩精品电影一区亚洲|
蜜桃久久久久久久|
国产米奇在线777精品观看|
久久97超碰国产精品超碰|
国产精一品亚洲二区在线视频|
国产一区二区三区免费观看|
国产精品亚洲人在线观看|
久久机这里只有精品|
国产成人免费视|
在线中文字幕一区二区|
欧美精品123区|
日韩欧美中文字幕精品|
久久久久久久久97黄色工厂|
一区免费观看视频|
日韩不卡一二三区|
成人免费毛片aaaaa**|
欧美体内she精视频|
精品不卡在线视频|
亚洲男女一区二区三区|
日本va欧美va欧美va精品|
国产黄人亚洲片|
欧美日产在线观看|
国产精品不卡一区二区三区|
亚洲一二三级电影|
国产黄色精品网站|
欧美日韩国产精品成人|
中文字幕av一区二区三区免费看|
亚洲一二三四区|
国产做a爰片久久毛片|
欧美吻胸吃奶大尺度电影|
久久夜色精品一区|
日韩国产精品久久久久久亚洲|
国产一区二区三区蝌蚪|
欧美麻豆精品久久久久久|
国产精品超碰97尤物18|
蜜桃91丨九色丨蝌蚪91桃色|
91国产成人在线|
综合激情网...|
成人一区二区在线观看|
欧美成人高清电影在线|
亚洲成人动漫一区|
欧美日韩亚洲国产综合|
亚洲区小说区图片区qvod|
国产99久久久精品|
国产免费观看久久|
国产在线麻豆精品观看|
日韩一本二本av|
蜜乳av一区二区三区|
91精品国产综合久久久久久漫画
|
久久综合久色欧美综合狠狠|
天堂成人免费av电影一区|
在线看一区二区|
伊人婷婷欧美激情|
91网站最新地址|
一区二区三区国产豹纹内裤在线
|
日韩制服丝袜av|
91免费看片在线观看|
国产精品久久久久久久久搜平片|
日日夜夜精品视频免费|
欧美一二三区在线观看|
久久国产生活片100|
久久精品人人爽人人爽|
成人av资源在线|
亚洲精品视频在线看|
亚洲人一二三区|
国产精品资源站在线|
91小宝寻花一区二区三区|
亚洲欧洲综合另类|
欧美成人猛片aaaaaaa|
毛片基地黄久久久久久天堂|
成人动漫一区二区三区|
日韩美女一区二区三区|
欧美成人bangbros|
国产精品久久久久aaaa樱花|
日韩一区二区三区在线观看|
www.亚洲色图|
亚洲一卡二卡三卡四卡五卡|
91精品国产欧美一区二区18
|
亚洲丝袜制服诱惑|
51精品秘密在线观看|
国产黑丝在线一区二区三区|
亚洲一区二区三区精品在线|
26uuu国产在线精品一区二区|
av不卡在线观看|
精品在线视频一区|
亚洲制服丝袜在线|
国产精品乱人伦中文|
3d动漫精品啪啪1区2区免费|
99久久99久久精品免费看蜜桃|
日韩成人av影视|
亚洲无人区一区|
亚洲日穴在线视频|
国产亚洲欧美色|
精品日韩av一区二区|
欧美性大战久久|
99国产精品久久久久久久久久久|
国产真实精品久久二三区|
日本午夜精品视频在线观看
|
亚洲综合色视频|
中文字幕中文乱码欧美一区二区|
欧美电影免费提供在线观看|
91成人免费在线视频|
成人av在线资源网站|
国产精品综合久久|
加勒比av一区二区|
麻豆精品国产91久久久久久|
日韩av一区二区三区四区|
亚洲国产精品尤物yw在线观看|
中文字幕一区av|
亚洲日本va在线观看|
亚洲欧美综合色|
亚洲视频在线观看三级|
一区在线中文字幕|
日韩美女视频一区|
一区二区三区中文字幕精品精品|
亚洲女同ⅹxx女同tv|
一卡二卡三卡日韩欧美|
亚洲成精国产精品女|
免费视频最近日韩|
国产综合久久久久影院|
国产成人av电影在线播放|
波多野结衣视频一区|
91久久免费观看|
在线观看亚洲a|
日韩一区二区免费在线电影|
久久久91精品国产一区二区精品
|
成人av先锋影音|
色噜噜狠狠色综合欧洲selulu|
欧美视频你懂的|
日韩一级二级三级|
国产精品伦理在线|
亚洲一区免费在线观看|
奇米影视7777精品一区二区|
国产精品一区二区久激情瑜伽|
91美女视频网站|
日韩一区二区三区精品视频|
国产精品久线观看视频|
亚洲国产一区二区在线播放|
国内精品国产成人国产三级粉色
|
日韩一二在线观看|
国产精品久久久久久久久果冻传媒
|
国产亚洲视频系列|
亚洲影院在线观看|
国产福利一区二区三区视频在线|
欧美性生活大片视频|