使用PHP模擬HTTP認證

2021-03-31 08:56:31 字數 1232 閱讀 7514

使用php模擬http認證

如果你希望在每個指令碼的基礎上實現口令保護功能,那麼你可以通過結合header()函式和$php_auth_user、$php_auth_pw全域性變數的方法來建立乙個基本認證機制。通常基於伺服器的認證請求/響應過程如下:

1. 使用者向一台web伺服器請求乙個檔案。如果檔案在乙個受到保護的區域以內,伺服器就在響應資料的頭部內加上401(非法使用者)字串作為回應。

2.瀏覽器看見該響應之後彈出使用者名稱/口令對話方塊。

3.使用者在對話方塊中輸入使用者名稱和口令,然後單擊「ok」把這些資訊送回到伺服器進行認證。

4. 如使用者名稱及口令有效,被保護的檔案將會顯示給使用者。該確認將在經證實的使用者在保護區域內的時間裡持續有效。 

乙個簡單的php指令碼可以通過傳送適當的http頭以在客戶機螢幕自動顯示使用者名稱/口令對話方塊以模擬http認證請求/響應系統。php將使用者輸入對話方塊的資訊儲存在$php_auth_user和$php_auth_pw變數中。通過使用這些變數,可以把不符合使用者名稱/口令檢驗的列表存放到某個文字檔案、資料庫或者你希望的任何地方。

注意:$php_auth_user、$php_auth_pw和$php_auth_type全域性變數僅當php被當作乙個模組安裝時才是有效的。如正使用php的cgi版本,則將僅限於使用基於htaccess認證或基於資料庫的認證方式,並通過html表單讓使用者輸入使用者名稱和口令,然後再讓php完成有效性的檢查。

本例顯示對兩個硬體編碼值的確認檢查,不論使用者名稱和口令存放在何處,這在理論上完全相同。

/* 檢查變數 $php_auth_user 和$php_auth_pw 的值*/

if ((!isset($php_auth_user)) || (!isset($php_auth_pw))) else if ((isset($php_auth_user)) && (isset($php_auth_pw))) else if (($php_auth_user == "validname") || ($php_auth_pw == "goodpassword"))

} ?>

必須提醒,當你正在使用基於檔案的保護時,此方式並不能對目錄提供全方位的安全保障。。這對大多數人而言是很明顯的,但是,如果你的大腦在彈出對話方塊和保護給定目錄二者之間建立乙個連線,你應該對此進行進一步的考慮。。

julie meloni 是i2i interactive的技術主管,及linux和開放源**社群的大力推動者。她撰寫了很多關於php及其他技術的書籍,並成為對**et builder.***具有長期貢獻的專家。

使用PHP進行HTTP認證

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

PHP的HTTP認證機制

php的http認證機制因此該功能不適用於 cgi 版本。在 apache 模組的 php 指令碼中,可以用 header 函式來向客戶端瀏覽器傳送authentication required資訊,使其彈出乙個使用者名稱 密碼輸入視窗。當使用者輸入使用者名稱和密碼後,包含有 url 的 php 指...

php模擬HTTP響應

利用php的header函式模擬http響應,主要是修改http協議的響應頭。以下介紹四種 header location url 跳轉到utl指定的頁面 header refresh 重新整理等待時間 url 目標指令碼 如果不加url,等待指定時間後,當前頁面重新整理 加上url,等待指定時間後...