. HTTP Basic

  客戶(hù)端以“ : ”連接用戶(hù)名和密碼后,再經(jīng)BASE64加密通過(guò)Authorization請(qǐng)求頭發(fā)送該密文至服務(wù)端進(jìn)行驗(yàn)證,每次請(qǐng)求都需要重復(fù)發(fā)送該密文。可見(jiàn)Basic認(rèn)證過(guò)程簡(jiǎn)單,安全性也低,存在泄露個(gè)人賬號(hào)信息以及其他諸多安全問(wèn)題。以下僅為原理演示,不代表真實(shí)情況:

  1. 客戶(hù)端向服務(wù)器請(qǐng)求數(shù)據(jù):

    GET / HTTP/1.1
    Host: www.myrealm.com

  2. 服務(wù)端向客戶(hù)端發(fā)送驗(yàn)證請(qǐng)求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

  3. 客戶(hù)端收到401返回值后,將自動(dòng)彈出一個(gè)登錄窗口,等待用戶(hù)輸入用戶(hù)名和密碼

  4. 將“用戶(hù)名:密碼”進(jìn)行BASE64加密后發(fā)送服務(wù)端進(jìn)行驗(yàn)證:

    GET / HTTP/1.1
    Host: www.myrealm.com
    Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx

  5. 服務(wù)端取出Authorization請(qǐng)求頭信息進(jìn)行解密,并與用戶(hù)數(shù)據(jù)庫(kù)進(jìn)行對(duì)比判斷是否合法,合法將返回200 OK,至于是否發(fā)送Authentication-Info頭部則是可選的

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫(huà)培訓(xùn)

 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&