預設情況下,大多數web伺服器一般被配置為匿名訪問,也即為,使用者在訪問伺服器上的資訊時一般不會被要求提示標識資訊。匿名訪問意味著使用者不使用使用者名稱和密碼登陸就可以訪問網站。這也是絕大多數公用網站所使用的配置。
在Apache的設定檔“httpd.conf”中,預設被配置為匿名訪問(如下):
複製代碼 代碼如下:<directory "C:/program files/Apache software foundation/apache2.2/htdocs">
Options Indexes FollowSymLinks Includes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
--------------------------------------------------------------------------------
要強制瀏覽器使用基本身份認證,必須傳遞一個WWW-Authenticate欄位,例如下邊的代碼使用header()函數來要求用戶端使用BASIC驗證,它在HTTP訊息前序中增加一個WWW-Authenticate欄位:
header("WWW-Authenticate:BASIC Realm=My Realm");
--------------------------------------------------------------------------------
下邊寫一個使用複製代碼 代碼如下:<?php
if(!isset($_SERVER['PHP_AUTH_USER'])){
header("WWW-Authenticate:BASIC Realm=My Realm");
header("HTTP/1.0 401 Unauthorized");
echo("帳號/密碼錯誤!");
exit;
}else{
/*擷取使用者名稱,密碼進行驗證*/
$user=$_SERVER['PHP_AUTH_USER'];
$pwd=$_SERVER['PHP_AUTH_PW'];
if($user=="admin"&&$pwd="password"){
echo "通過驗證";
}else{
header("HTTP/1.0 401 Unauthorized");
echo "帳號/密碼錯誤!";
exit;
}
}
?>