. HTTP Basic
客戶端以“ : ”連接用戶名和密碼后,再經(jīng)BASE64加密通過Authorization請求頭發(fā)送該密文至服務端進行驗證,每次請求都需要重復發(fā)送該密文。可見Basic認證過程簡單,安全性也低,存在泄露個人賬號信息以及其他諸多安全問題。以下僅為原理演示,不代表真實情況:
客戶端向服務器請求數(shù)據(jù):
GET / HTTP/1.1
Host: www.myrealm.com服務端向客戶端發(fā)送驗證請求401:
HTTP/1.1 401 Unauthorised
Server: bfe/1.0.8.18
WWW-Authenticate: Basic realm="myrealm.com"
Content-Type: text/html; charset=utf-8客戶端收到401返回值后,將自動彈出一個登錄窗口,等待用戶輸入用戶名和密碼
將“用戶名:密碼”進行BASE64加密后發(fā)送服務端進行驗證:
GET / HTTP/1.1
Host: www.myrealm.com
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx服務端取出Authorization請求頭信息進行解密,并與用戶數(shù)據(jù)庫進行對比判斷是否合法,合法將返回200 OK,至于是否發(fā)送Authentication-Info頭部則是可選的
1 <?php 2 if (!isset($_SERVER['PHP_AUTH_USER'])) { 3 header('WWW-Authenticate: Basic realm="My Realm"'); 4 header('HTTP/1.0 401 Unauthorized'); 5 echo&