2014年5月8日 星期四

使用 .htaccess 網頁認證的方式

製作工具toolhttp://www.htaccesseditor.com/tc.shtml#a_fileList


http://sparc.nfu.edu.tw/teacher/htaccess/
  .htaccess 網頁認證的方式,是以目錄為一個驗證的節點,凡要經過此目錄才能瀏覽的網頁,
  皆需要透過 .htaccess 的驗證之後才可以存取。
 
   
舉例:
    
      我有一個學術單位的網頁,網址為 http://sparc.nfu.edu.tw/~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"   
       用來設定如下紅色方框內的文字
   
 
    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 所建立的帳號密碼,就可以登入了。

沒有留言:

張貼留言