
什么是SQL注入?理解、風險與防范技巧
在討論各個組件之前,讓我們先看看當用戶發起涉及另一個不相關網站或服務的網站操作時發生的事件順序。假設用戶已使用 HTTPS 登錄到第一個網站。
關于 OAuth 2.0 工作原理的討論很容易變得非常技術化。從高層次來看,基本構建塊及其功能分為五個核心組件。
現在,讓我們更詳細地分解每個組件。
范圍是一種定義權限并為應用程序或服務可以訪問或不能訪問的內容設置邊界的機制。
當應用程序發送授權請求時,會向用戶顯示請求的具體范圍,并且用戶必須授權同意。
此同意作為授權證明并允許授予訪問令牌。
OAuth 流程中出現四個參與者:
客戶端可以是機密的,也可以是公開的。機密客戶端顧名思義就是保守秘密。它們在安全區域運行,最終用戶無法訪問。
公共客戶端是安全性較低的實體,例如瀏覽器、移動應用程序和物聯網設備,而機密客戶端則更安全,并且可以被授予更多對安全資源的訪問權限。
OAuth 流中有兩種類型的令牌參與者——訪問令牌和刷新令牌。
當您終止刷新令牌時,您將獲得一個新的、經過加密簽名的訪問令牌。
通常,這些令牌采用 JavaScript 對象表示法 (JSON) 格式,稱為 JSON Web 令牌或 JWT(發音為“jots”)。JWT 允許數字簽名(也稱為聲明),稍后可以使用秘密簽名密鑰進行驗證。
令牌從授權服務器上的兩個主要端點獲取。第一個是授予用戶同意和授權的“授權端點”。授權隨后傳遞到“令牌端點”,在此處理授權并授予刷新令牌和訪問令牌。
訪問令牌是訪問 API 的關鍵。但一旦過期,就需要使用刷新令牌再次前往令牌端點,重新執行所有操作。
流程是客戶端訪問請求的資源所需的一系列步驟和授權授予類型。
OAuth 2.0 包括六種流程,用于不同類型的交互。
盡管 OAuth 2.0 因保護私人數據而受到開發人員和最終用戶的歡迎,但也有批評者。
一些人猛烈抨擊 1.0 版和 2.0 版之間的重大變化,這并非毫無道理。OAuth 2.0 的安全性明顯低于其前身,而且更為復雜。
OAuth2.0最大的詬病可能就是不直接支持客戶端驗證、簽名、通道綁定。
批評者指責 OAuth 2.0 的創建者選擇專注于提高網站和設備之間的互操作性,而不是提供額外的范圍和安全性。
OAuth 建議使用第三方保護協議(例如傳輸層安全性(TLS)) 來提供附加功能。
雖然 OAuth 2.0 在安全使用私人數據方面向前邁了一步,但它遠不足以防止您的 API 受到在OWASP API 安全性前 10 名列表中排名第一的對象級授權 (BOLA) 漏洞的侵害。
公司依靠自動化 API 安全測試平臺全面測試其 API,以跟上不斷發展的安全標準。
文章來源:What Is OAuth 2.0 and How Does It Work?