中文資訊科技應用 | 首頁 | 前頁 | 交流 | 搜尋 | 地圖

中文教學 > 中文資訊科技應用 > 保安 > htaccess

htaccess

為防止未經授權的瀏覽者進入某一目錄(以及閱讀、改寫或執行某些檔案),可以在有關目錄上加入登入的限制,要求瀏覽者輸入登入名稱與登入密碼後,才可進入某一目錄(閱讀、改寫或執行某些檔案)。

例如,本站討論區 論壇 為免遭自動垃圾郵件張貼程式攻擊,便加入了登入限制,瀏覽者要輸入以下資料才可到討論區留言、張貼:

登入名稱 (login):students
登入密碼 (password):student

要在有關目錄上加入登入的限制,主要分兩個主要環節:一、製造一個記錄登入名稱與密碼的檔案,這檔案可以放在網站上任何一個目錄中(步驟 1 - 4);二、在要加入登入限制的目錄中製造一個稱為 .nsconfig 的檔案(步驟 5)。


1. Telnet 進入 hkusua.hku.hk


2. 製造記錄登入名稱與密碼的檔案

輸入以下指令,「htpasswd -c」不可改易,(UserPasswordFile) 是記錄登入名稱與密碼的檔案名稱,(username) 則是給瀏覽者設定的登入名稱,瀏覽者日後要輸入這一登入名稱,才可進入有關目錄。

htpasswd -c (UserPasswordFile) (username)

例如:

htpasswd -c ict students

上例把記錄登入名稱與密碼的檔案名稱定為 ict,而給瀏覽者設定的登入名稱為 students。系統跟著會要求輸入登入名稱 students 的登入密碼兩次,輸入後如沒顯示任何錯誤訊息,表示設定成功。

重複以上步驟,增加更多不同的登入名稱與密碼。


3. 修改 (UserPasswordFile) 的屬性為 644:

chmod 644 (UserPasswordFile)

再以上例為例,上例把記錄登入名稱與密碼的檔案名稱定為 ict:

chmod 644 ict


4. 要從 (UserPasswordFile) 檔中刪除登入資料(即名稱與密碼),需要在 telnet 的環境下開啟 unix 系統的文字處理器,如 pico 或 vi,以編輯 (UserPasswordFile) 檔中的資料。

再以上例為例,上例把記錄登入名稱與密碼的檔案名稱定為 ict:

vi ict

便會顯示:

students:PcIebT3AHYQE2

其中 students 為登入名稱,冒號後是加密了的登入密碼。刪除有關資料後存檔即完成。


5. 建立一個名為「nsconfig.txt」的檔案,內容如下:

<Files *>
RequireAuth userfile=(UserPasswordFile 的位址) realm=HKU userlist=*
</Files>

以本站為例,上例把記錄登入名稱與密碼的檔案名稱定為 ict,並把這檔案放在根目錄 /user3/jwilam/public_html 之中,則 (UserPasswordFile 的位址) 便是 /user3/jwilam/public_html/ict 了:

<Files *>
RequireAuth userfile=/user3/jwilam/public_html/ict realm=HKU userlist=*
</Files>

注意:如果記錄登入名稱與密碼的檔案名稱不是 ict,這檔案也不是放在根目錄中,則 (UserPasswordFile 的位址) 便不會是 /userX/XXX/public_html/ict 。

把以上檔案上載到任何打算限制登入的目錄,然後把檔案改名為「.nsconfig」

修改 .nsconfig 的屬性為 644:

chmod 644 .nsconfig

6. 當進入載有 .nsconfig 的目錄時,系統便要求登入名稱及密碼:


香港大學 htaccess 連結

Setting up Access Control for Web pages
http://www.hku.hk/cc_news/ccnews69/waccess2.htm

Web Page Protection on Apache Web Server(不適用於 hkusua 伺服器)
http://www.hku.hk/cc/faq/www/htaccess.htm