在最近的專案中,需要實現乙個客戶端,通過http協議訪問web伺服器,即c/s架構。
使用客戶端的功能前需要先進行登入認證,原本的設計是:客戶端登入成功後,維護乙個cookie用於保持當前的登入狀態。
但是最終的做法是,採用了」http基本認證「,就是將使用者的使用者名稱和密碼放在http請求頭部的authorization欄位中,當然不是放的明文,而是經過base64編碼過的,但是也毫無安全可言,因為base64只是一種基於字元表的編碼方式而已不是加密演算法。
下面我們用curl來演示使用http基本認證的方法:
curl通過-u這個引數來輸入http basic auth用到的使用者名稱和密碼
我們可以看到請求頭部的「authorization: basic dgvzddp0zxn0mtiz「,我們使用base64解碼這個"dgvzddp0zxn0mtiz"就可以看到這就是"test:test123"; 由於輸入的密碼不對,我們看到響應頭部的"www-authenticate: basic realm="authentication required"",如果使用者名稱和密碼正確那麼就不會出現這個欄位呢!
{ "data": "invalid credentials",從上面可以看到,如果我們每次訪問api都使用這種傳輸使用者名稱:密碼的方式,那麼是非常不安全的;所以好的設計是,最開始使用這種方式訪問api獲取乙個token(經過特殊加密過程的字串), 然後再接下來的訪問中傳輸token:就可以了。
HTTP 基本認證,摘要認證,擴充套件HTTP認證
http請求報頭 authorization http響應報頭 www authenticate http認證 基於質詢 回應 challenge response 的認證模式。基本認證 basic authentication http1.0提出的認證方法 客戶端對於每乙個realm,通過提供使用...
HTTP基本認證
http提供了乙個原生的質詢 響應框架,簡化了對使用者的認證過程。http的認證模型如圖所示.web伺服器接收到一條http請求報文時,伺服器沒有直接響應請求的資源,而是以乙個 認證質詢 進行響應,要求使用者提供一些保密資訊來說明其身份。使用者再次發起請求時,要附上保密證書 使用者名稱和密碼 如果與...
HTTP基本認證
認證概念 伺服器需要通過某種方式來了解使用者的身份,一旦伺服器知道了使用者的身份,就可以判定使用者可以訪問事務和資源了 通常通過使用者名稱和密碼 http響應 認證框架 http認證模型 質詢 響應認證框架 http的兩個官方的認證協議 基本認證和摘要認證 認證的四個步驟 請求 客戶端發起一條請求 ...