假設你有一些敏感的信息要放在Intranet/Internet上,你首先可能會想到自己開發一個用戶身份認證的系統來保護你的Web頁面。其實Apache本身就自帶了限制用戶訪問Web頁面的機制,實現起來也不複雜。

本文介紹在Linux+Apache上的實現方法:

1、修改http.conf
  假設你想控制/usr/local/apache/htdocs下各目錄的不同訪問權限,你可以在與之間加入一行:
AllowOverride All
  意思是在/usr/local/apache/htdocs下不同目錄的訪問權限由該目錄下的.htaccess文件來控制,而且不同目錄的權限策略可互相覆蓋。

2、編輯你想要控制的目錄下的.htaccess文件
  假設你的phpmyadmin目錄在/usr/local/apache/htdocs下,你可以這樣在phpmyadmin目錄下創建一個.htaccess文件,內容如下:

AuthUserFile /usr/local/apache/pass/pwdPhp
AuthType Basic
AuthName "Database Security Zone"
ErrorDocument 401 /catchErrors/err_401.html

require valid-user


該文件說明了幾個問題:
(1) 用戶信息存放在/usr/local/apache/pass/pwdPhp中.
(2) 認證類型為基本型(此外還有一些其他的加密類型).
(3) ErrorDocument 所指向的html文件.
(4) 認證方式:用戶認證(valid-user)或組認證(valid-group).

3. 生成用戶密碼文件
有一個用戶密碼生成程序:htpasswd(在/usr/local/apache/bin下), 它可以加入用戶密碼信息到指定的文件中,如/usr/local/apache/pass/pwdPhp. 我的用戶密碼文件內容如下:

admin:a0Hplbj33QjV2
guest:R0BYSO383QjVT

4. 重起apache deamon
/usr/local/apche/bin/apachectl restart

5. 測試
用IE瀏覽受保護的頁面,如http://ip/phpmyadmin/ (可能需要refresh幾次才能湊效),這時應該出現一個身份認證窗口,你需要輸入用戶名(admin / guest) 和密碼(******)才能訪問這個頁面。

資料轉載:http://php100.com/html/webkaifa/apache/2009/0418/1194.html

創作者介紹
創作者 Black 的頭像
black0331

Black

black0331 發表在 痞客邦 留言(0) 人氣( 317 )