HTTP使用BASIC認證的原理及實現方法

2021-07-10 16:12:13 字數 2116 閱讀 6434



一.

basic

認證概述

協議進行通訊的過程中,

協議定義了基本認證過程以允許

伺服器對

web瀏覽器進行使用者身份證的方法,當乙個客戶端向

伺服器進行資料請求時,如果客戶端未被認證,則

伺服器將通過基本認證過程對客戶端的使用者名稱及密碼進行驗證,以決定使用者是否合法。客戶端在接收到

伺服器的身份認證要求後,會提示使用者輸入使用者名稱及密碼,然後將使用者名稱及密碼以

base64

加密,加密後的密文將附加於請求資訊中,

如當使用者名為

anjuta

,密碼為:

123456

時,客戶端將使用者名稱和密碼用「:

」合併,並將合併後的字串用

base64

加密為密文,並於每次請求資料

時,將密文附加於請求頭(

request header

)中。http

伺服器在每次收到請求包後,根據協議取得客戶端附加的使用者資訊(

base64

加密的使用者名稱和密碼),解開請求包,對使用者名稱及密碼進行驗證,如果用

戶名及密碼正確,則根據客戶端請求,返回客戶端所需要的資料

;否則,返回錯誤**或重新要求客戶端提供使用者名稱及密碼。

二.

basic

認證的過程

1.客戶端向伺服器請求資料,請求的內容可能是乙個網頁或者是乙個其它的

mime

型別,此時,假設客戶端尚未被驗證,則客戶端提供如下請求至伺服器:

2.伺服器向客戶端傳送驗證請求**

401,

伺服器返回的資料大抵如下:

3.當符合

或1.1

規範的客戶端(如ie,

firefox

)收到401

返回值時,將自動彈出乙個登入視窗,要求使用者輸入使用者名稱和密碼。

4.使用者輸入使用者名稱和密碼後,將使用者名稱及密碼以

base64

加密方式加密,並將密文放入前一條請求資訊中,則客戶端傳送的第一條請求資訊則變成如下內容:

authorization: basic ***************************x

注:***x....

表示加密後的使用者名稱及密碼。

5.伺服器收到上述請求資訊後,將

authorization

欄位後的使用者資訊取出、解密,將解密後的使用者名稱及密碼與使用者資料庫進行比較驗證,如使用者名稱及密碼正確,伺服器則根據請求,將所請求資源傳送給客戶端:

三.

basic

認證的缺點

基本認證的目標是提供簡單的使用者驗證功能,其認證過程簡單明瞭,適合於對安全性要求不高的系統或裝置中,如大家所用路由器的配置頁面的認證,幾乎

都採取了這種方式。其缺點是沒有靈活可靠的認證策略,如無法提供域(

domain

或realm

)認證功能,另外,

base64

的加密強度非常低,可以說僅

能防止sohu

的搜尋把它搜到了。當然,

基本認證系統也可以與

ssl或者

kerberos

結合,實現安全效能較高(相對)的認證系統

使用PHP進行HTTP認證

我們在登入某些安全性較高的 時,有時候可能會遇到這種情況 直接在網頁上 彈出乙個windows視窗,要求輸入認證的使用者名稱和密碼,只有認證登入成功才能看到內 容,否則的話則連該頁面都無法開啟,這是一種http認證的的方式,它大大加強了系統 的保密性和安全性,那這是如何實現的呢,下面我就簡要向大家介...

使用PHP模擬HTTP認證

使用php模擬http認證 如果你希望在每個指令碼的基礎上實現口令保護功能,那麼你可以通過結合header 函式和 php auth user php auth pw全域性變數的方法來建立乙個基本認證機制。通常基於伺服器的認證請求 響應過程如下 1.使用者向一台web伺服器請求乙個檔案。如果檔案在乙...

HTTP的幾種認證方式

基礎認證簡單的使用base64對密碼 使用者名稱進行加密,並將加密後的資訊放在header中,本質上還是明文傳輸使用者名稱 密碼等,基本流程 摘要認證使用隨機數 md5加密雜湊函式來對使用者名稱 密碼進行加密,在上述第二步時伺服器返回隨機字串nonnce,之後客戶端傳送摘要 md5 ha1 nonc...