Basic認證是一種較爲簡單的HTTP認證方式,客戶端經過明文(Base64編碼格式)傳輸用戶名和密碼到服務端進行認證,一般須要配合HTTPS來保證信息傳輸的安全。瀏覽器
1.當打開須要認證的頁面時,會彈出一個對話框,要求輸入用戶名和密碼緩存
2.使用Fiddler監聽請求,能夠看到在未進行認證或認證失敗的狀況下,服務端會返回401 Unauthorized
給客戶端,並附帶Challenge(質詢),即在Response Header中添加WWW-Authenticate
標頭,瀏覽器識別到Basic後彈出對話框
Realm
表示Web服務器中受保護文檔的安全域(好比公司財務信息域和公司員工信息域),用來指示須要哪一個域的用戶名和密碼,用" "
包括起來(截圖中沒有,但最好加上)。安全
3.輸入正確的用戶名和密碼,認證成功後,瀏覽器會將憑據信息緩存起來,那麼之後再進入時,無需重複手動輸入用戶名和密碼。
查看HTTP請求,能夠看到Request Header中添加了Authorization
標頭,格式爲:Authorization: <type> <credentials>
服務器
1.用戶名和密碼明文(Base64)傳輸,須要配合HTTPS來保證信息傳輸的安全。
2.即便密碼被強加密,第三方仍可經過加密後的用戶名和密碼進行重放攻擊。
3.沒有提供任何針對代理和中間節點的防禦措施。
4.假冒服務器很容易騙過認證,誘導用戶輸入用戶名和密碼。
接下來,我會帶你們一塊兒去了解更爲安全的摘要認證——Digest。編碼