2008年7月8日 星期二

網頁認證的方式.htaccess使用技巧

加入書籤: HemiDemi MyShare Baidu Google Bookmarks Yahoo! My Web Del.icio.us Digg technorati furl

.htaccess 網頁認證的方式,是以目錄為一個驗證的節點,凡要經過此目錄才能瀏覽的網頁,

皆需要透過 .htaccess 的驗證之後才可以存取。

舉例:

我有一個學術單位的網頁,網址為 http://sparc.nfu.edu.tw/~test/test/

是要讓大家都可以來瀏覽的;不過我有一些比較機密性的文件,僅可以提供某些特定的人來瀏覽,

於是這些機密性的文件我都將它放置到網頁根目錄底下的 admin目錄當中,

如今我要讓來存取網址為 http://sparc.nfu.edu.tw/~test/admin/(任何檔案)

都需要透過驗證才能夠瀏覽,我可以這麼做:

步驟1.建立 .htaccess

在 admin 目錄中,建立一個 .htaccess 的檔案,

.htaccess 的檔案內容為 :

AuthName "Admin Login"

AuthUserFile /home1/test/.passwd

AuthType Basic

require valid-user

各欄位的意義:

1. AuthName "Admin Login"

用來設定如下紅色方框內的文字

123

2. AuthUserFile /home1/test/.passwd

AuthUserFile 用來設定給 .htaccess 驗證時,要使用的帳號密碼資料的位置,

需使用絕對路徑的方式來設定。

/home1/test/.passwd 帳號密碼資料檔,是由我們自行產生的(在 步驟2 會說明)。

3. AuthType Basic

認證的類型;我們使用 Apache 預設的類型,Basic就可以了

4. require valid-user

讓密碼檔內的使用者都能夠登入(即上面AuthUserFile所指定的檔案)

步驟2. 產生帳號密碼檔

利用 htpasswd 指令來幫我們產生帳號密碼檔

語法:htpasswd [ 參數 ] < 帳號密碼檔 > < 要新建的登入帳號 >

1. 若現在我要新建一個登入帳號 為 test

而這個時候 /home1/test/.passwd 帳號密碼檔

還不存在,則我需要輸入下列指令:

htpasswd –c /home1/test/.passwd test

(-c 參數用來產生帳號密碼檔 )

基於安全性上的考量,帳號密碼檔 請勿放置在WWW目錄內(含WWW以下目錄中),

建議使用者可將帳號密碼檔放置在 使用者家目錄 即可。

輸入完之後,它會請您輸入此使用者 test 的密碼,輸入完,

便會產生 /home1/test/.passwd 帳號密碼檔案,

並且在 /home1/test/.passwd 檔案裡面您會看到 test 這個帳號,

與其加密過後的密碼。

(需特別注意的是,如果 /home1/test/.passwd 已經存在的話,

請不要再使用 –c 參數,因為它會覆蓋掉原本/home1/test/.passwd

的內容,只留下我們此次建立的帳號資料 )

2. 如果現在我要再新建一個登入帳號 為 admin,

而這個時候 /home1/test/.passwd 已經存在,

則我只需要輸入下列指令,

htpasswd /home1/test/.passwd admin

然後它依然會請您輸入此使用者的密碼,輸入完畢後,

/home1/test/.passwd 就會看到,

您剛剛新建的使用者帳號及密碼的資料了。

經過 步驟1 與 步驟2 的設定之後,

只要有人要來瀏覽我的 http://sparc.nfu.edu.tw/~test/admin/(任何檔案)

就必須要輸入帳號密碼,此時只要輸入在 步驟2 所建立的帳號密碼,就可以登入了。

-------------------------------------------------------------------------------

現在有了一個更方便的工具,那就是 .htaccess 檔案產生器(htaccess Generator)透過網頁的勾選與設定,在按下 Generator .htaccess File 後便可以得到一個 htaccess 檔,非常方便。

【網站網址】http://cooletips.de/htaccess/

沒有留言:

EasyReadMore