萬盛學電腦網

 萬盛學電腦網 >> 系統工具 >> 如何應用份認證模塊和.htaccess文件保證Web安全

如何應用份認證模塊和.htaccess文件保證Web安全

   要限制對一個網頁的訪問,可使用Apache和第三方提供的身份認證模塊和方法來驗證用戶的憑據(如用戶名和密碼)。一些模塊支持通過各種數據庫(包括NIS和LDAP)進行身份認證。

  用戶認證指令通常放置在.htaccess文件中。下面是使用Apache默認身份認證模塊(mod_auth)的一個基本.htaccess文件。當這個文件放置在/var/www中時,會導致Apache要求用戶輸入密碼進行驗證,然後浏覽器才能訪問/var/www目錄層次結構中的內容。應用時,要用本地服務器的相應值進行替換。

  # cat .htaccess

  AuthUserFile /var/www/.htpasswd

  AuthGroupFile /dev/null

  AuthName "Browser dialog box query"

  AuthType Basic

  require valid-user

  /var/www/.htpasswd是一個.htpasswd文件的典型絕對路徑名,用戶在要求輸入用戶名和密碼的對話框中會看到字符串Browser dialog box query。

  前面.htaccess文件的第二行關閉組功能。第四行指定用戶的身份認證類型為Basic,這也是mod_auth模塊的默認設置。最後一行告訴Apache哪些用戶可以訪問受保護的目錄。valid-user條目會授權任何用戶(用戶名在Apache密碼文件中並且輸入的密碼正確)訪問該目錄。

  只要Apache可以讀取其密碼文件,該文件可放在系統上的任何地方。把這個文件與.htaccess文件放在同一目錄下也是安全的,因為默認情況下,Apache將不會對名字以.ht開頭的任何文件的請求進行回復。但是一定不要更改httpd.conf配置文件,以防Apache對名字以.ht開頭的文件的請求進行回復。

  下面的命令將在工作目錄中創建(–c)一個帶有Sam條目的.htpasswd文件。省略–c選項可以在現有.htpasswd文件中添加用戶或更改密碼。

  $ htpasswd -c .htpasswd sam

  New password:

  Re-type new password:

  Adding password for user sam

  默認的httpd.conf文件包括用於/var/www的AllowOverride None指令。要啟用Apache來處理用戶認證指令(如讀取.htaccess文件),必須將這個指令更改為AllowOverride AuthConfig或將其刪除。

  在Apache已配置為可處理.htaccess文件後,當它收到對文件的請求時,必須從所請求的文件向上遍歷目錄層次結構一直到根目錄,查找.htacess文件,以確定它是否可以提供該請求的文件。此搜索可能會影響性能。通常情況下性能下降不太嚴重,但如果性能很關鍵,則這個問題將很棘手。

copyright © 萬盛學電腦網 all rights reserved