2012年9月20日星期四

转:利用.htaccess 保護網頁

摘自: http://blog.csdn.net/wghshy/article/details/628126

網站上的網頁, 一般說來都是開放給所有人來瀏覽, 但是有時候, 某些網頁希望只讓特定的人瀏覽, 此時可利用密碼確認與來源 IP 管制這兩種方式來過濾使用者.

要對瀏覽網頁的人作密碼確認與來源 IP 管制, 最簡單的就是透過 .htaccess 了 
 

透過 .htaccess 替網頁作密碼保護

  1. 首先建立一個要用密碼來保護的目錄 (如 secure)
  2. 在這個目錄下建立一個 .htaccess 的檔案, 內容如下


    AuthUserFile /user1/staff/tung/public_html/secure/.passwd 
    AuthGroupFile /dev/null 
    AuthName  "access" 
    AuthType Basic

    <Limit GET> 
    require valid-user 
    </Limit>

    上面這個檔案會把整個 security 目錄 (含所有子目錄), 都用紅色部份所標明的 .passwd 保護起來, 任何想要瀏覽 security 目錄內網頁的人, 都必須輸入正確的使用者名稱與密碼才行 
     

  3. 建立 .passwd 這個密碼檔


    cd security 
    htpasswd -c .passwd test 
    然後輸入一組密碼 
    上面這個命令會建立 .passwd 這個檔, 並放入使用者 test 與其密碼

    如果你希望多放幾個使用者到密碼檔裡, 那麼繼續 
    htpasswd .passwd test2 
    並輸入 test2 的密碼

    要注意只有在第一次時才要用 -c 這個參數, 它代表重新建立一個密碼檔, 如果在密碼檔已存在的情形下使用 -c 這個參數, 密碼檔舊有記錄會被清除

    .passwd 檔案是一個普通的文字檔, 你可以用一般的文書編輯器去處理它, 刪除不要的使用者名稱與密碼 
     

  4. 最後將要被保護的網頁放到 .htaccess 所在的子目錄中
測試一下 
(name=test, passwd=111 或 name=test2, passwd=222) 
 

透過 .htaccess 替網頁作來源 IP 管制

比如說你希望只有來自 *.ncku.edu.tw 或是 140.116.* 的使用者才能瀏覽你的網頁, 請在上述的 .htaccess 檔案中, 加入下列片段即可

<Limit GET> 
order deny,allow 
deny from all 
allow from .ncku.edu.tw 
allow from 140.116. 
</Limit>

如果你要保護的是 CGI 程式所在的目錄, 除了要產生上述的 .htaccess 檔案外, 還要把 <Limit GET> 這行改成<Limit GET POST PUT> 才行 

没有评论: