http 認證

今天看文章的時候無意中看到了 HTTP Authentication 這個我以前也遇到過一點點,這個就是瀏覽器會自動跳出個登錄框出來讓登錄啊,不用寫任何的代碼的,我記得mysqladmin 好像就是用的這種認證方式,今天看了感覺我這個不瞭解嗎,看來很有必要要好好的瞭解一下了。

上網查詢了發現 這個認證的方式有分爲兩種情況的 Basic 和Digest 今天我就先了解了最簡單的basic的吧,這個在php中實現如下

首先要讓瀏覽器彈出登錄框
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="提示文字"');

這 個瀏覽器就能顯示登錄框的。

用戶輸入了用戶名密碼後 在請求的http頭中加入了 authenticate 值爲 用戶名加:加密碼 然後base64一下

後端的php可以通過檢查 $_SERVER['PHP_AUTH_USER'] 檢查是否存在 authenticate
用戶名可以通過 $_SERVER['PHP_AUTH_USER'] 取得
密碼通過 $_SERVER['PHP_AUTH_PW'] 取得
這樣你就可以通過檢查用戶名 密碼來判定輸入的值是否正確

不過這個保存用 戶名密碼的方式不安全的,很容易被網絡劫持,然後還原的 php中就有這樣的函數 base64_decode 就能把 base64 的編碼還原爲原來的字符串

Digest 方式應該安全點,我沒有仔細的看,等我看完了再介紹給大家吧

發佈了43 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章