一、概述
Basic認證是一種較為簡單的HTTP認證方式,客戶端通過明文(Base64編碼格式)傳輸使用者名稱和密碼到服務端進行認證,通常需要配合HTTPS來保證資訊傳輸的安全。
二、剖析
1.當開啟需要認證的頁面時,會彈出一個對話方塊,要求輸入使用者名稱和密碼
2.使用Fiddler監聽請求,可以看到在未進行認證或認證失敗的情況下,服務端會返回401 Unauthorized
給客戶端,並附帶Challenge(質詢),即在Response Header中新增WWW-Authenticate
標頭,瀏覽器識別到Basic後彈出對話方塊
3.輸入正確的使用者名稱和密碼,認證成功後,瀏覽器會將憑據資訊快取起來,那麼以後再進入時,無需重複手動輸入使用者名稱和密碼。
檢視HTTP請求,可以看到Request Header中新增了Authorization
標頭,格式為:Authorization: <type> <credentials>
- 型別為“Basic”
- 憑證為“MTIzOjEyMw==”,是通過將“使用者名稱:密碼”格式的字串經過的Base64編碼得到的。而Base64不屬於加密範疇,可以被逆向解碼,等同於明文,因此Basic傳輸認證資訊是不安全的