HTTP Basic 認證

HTTP Basic 認證

Basic 認證是 Web 服務器於客戶端之間進行認證的一種方式, 最初是在HTTP 1.0 規範(RFC 1945)中定義,後續的有關安全的信息可以在HTTP 1.1規範(RFC 2616)和HTTP認證規範(RFC 2617)中找到。

Basic 認證過程

當客戶端請求了需要進行 Basic 認證的資源,服務器就會返回帶有 401 unauthorized 狀態碼以及 WWW-Authenticate 首部字段的響應。WWW-Authenticate 內容包含了認證方式(Basic)及 Request-URI 安全域字符串(realm)。

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="My realm"

客戶端收到 401 狀態碼並要求進行 Basic 認證後,就需要用戶 ID 和密碼發送給服務器,發送的字符串內容是由用戶 ID 和密碼通過冒號(:)連接後,再經過 Base64 進行編碼處理得到。然後把這個字符串寫入 Authorization 首部字段,併發送請求。

客戶端是瀏覽器的情況下,這個階段會彈出對話框,要求輸入用戶 ID 和密碼,確定後就會自動完成編碼發送請求。

GET /index.html HTTP/1.1
Host: localhost
Authorization: Basic aGFyYm9yOmhhcmJvcg==

服務器接收到包含 Authorization 字段的請求後,會對其正確性進行驗證。如驗證通過,則返回一條包含 Request-URI 資源的響應。

Basic 認證優點

在假定客戶端和服務器之間的連接安全的情況下,通過Basic 認證來實現身份認證非常簡單,只需要對Web服務器(比如Apache、NGINX)簡單的配置即可輕鬆實現。客戶端如果是瀏覽器,也無需做什麼處理。

Basic 認證缺點

Basic 採用了 Base64 編碼處理,但這並非加密處理,可以輕易地進行解碼。在沒有進行加密的 HTTP 通信中使用 Basic 認證,可以輕易被竊聽而得到認證的用戶 ID 和密碼。

在Basic 認證過後,只能通過關閉瀏覽器進行認證註銷操作,這樣切換用戶時就會比較麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章