指南真簡單教程 —— HTTP Basic鑒權框架

標準/規(guī)范

RFC7617

概念

HTTP基本鑒權框架提供了一種通過HTTP Header發(fā)送用戶名/密碼信息到服務器進行登錄的簡單身份鑒定方法。同時定義了與方法匹配的交互方式,比如鑒權失敗時服務器應返回401狀態(tài)碼。
由于不使用form提交也不會出現(xiàn)在請求體內(nèi)容中,減少了一部分CSRF攻擊可能性,更重要的是支持跨域授權(比如OAuth2.0),常用于需要開放資源給域外客戶的場景。

實現(xiàn)

一個標準的HTTP Basic Auth頭規(guī)則并不復雜

Authorization: Basic aG9seWhpZ2g6aGlnaGx5aG9sZQ==
  • 協(xié)議頭為:標準HTTP協(xié)議值 Authorization
  • 協(xié)議內(nèi)容為:(Basic scheme(方案) + 空格*1 + 鑒權信息)三部分組成
  • 鑒權信息為:經(jīng)過Base64編碼的 username:password 格式的字符串,比如上例進行解碼后的身份信息為
    holyhigh:highlyhole
    

風險

  1. 顯然,Base64并不屬于加密范疇,明碼傳輸很容易被攔截,所以這種方法通常會與TLS一起使用
  2. 相比跨域登錄,基本鑒權更適合數(shù)據(jù)交換場景,比如將訪問碼放在header中進行資源請求。但如果作為同域內(nèi)的登錄方式 —— 比如獨立構建的web服務請求資源服務授權是可以的
  3. 如果你已經(jīng)確定將基本鑒權作為跨域數(shù)據(jù)交換的方式,顯然,你需要對協(xié)議值進行各種程度的加密處理,比如與基礎鑒權相關的摘要鑒權(Digest Access Authentication)。當然,你還有其他選擇:OAuth2.0 、JWT
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容