茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671394 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00145.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]如何設定 APACHE 需要密碼才能瀏覽某目錄?

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]如何設定 APACHE 需要密碼才能瀏覽某目錄?
如何設定 APACHE 需要密碼才能瀏覽某目錄?

範例為我們要保護 /usr/local/apache/protect 資料夾

該目錄(/usr/local/apache/protect)中必須要有二個檔案:
.htaccess 設定檔
.htpasswd 帳號、密碼檔

首先建立 .htaccess

編輯.htaccess 檔案的範例如下:

AuthName "受保護的資料夾"
AuthType Basic
AuthUserFile "/usr/local/apache/protect/.htpasswd"
require valid-user

再來建立 /usr/local/apache/protect/.htpasswd

用 touch 指令建立空檔案:
touch .htpasswd

然後用 htpasswd 指令一筆筆新增帳號與密碼:
(htpasswd程式應當與httpd放在同一資料夾中,找找看,此範例中是/usr/local/apache/bin)
htpasswd -bm .htpasswd $username $passwd
(一次建立一筆,且使用MD5編碼,$username是帳號,$passwd是該帳號之密碼,系統不會出現要求您輸入密碼的對話)
只有打htpasswd的話,系統會顯示出相關的語法。

編輯 Apache Server 的設定檔:httpd.conf
自行加入下列四行:
Alias /protect/ "/usr/local/apache/protect/"
<Directory "/usr/local/apache/protect">
AllowOverride All
</Directory>
(如果還有其他目錄要如此,請比照。)

重新啟動 Apache Server
apachectl restart

完成!
你可以用瀏覽器看看你要保護的資料夾是不是有跟你要求密碼了!?
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Apache目錄保護 .htaccess 的製作
.htaccess 檔是 acache http 伺服器上的一個設定檔。
一般來說,管理人員都會開放部份功能給你自行設定,也有的會完全關閉對 .htaccess 的支援。

設定網頁密碼;
設定發生錯誤時出現的文件;
改變首頁的檔案 (index.html);
禁止讀取檔案;
重新導向文件;
加上 MIME 類別;
防止列出目綠內的檔案..等等
其實還有很多功能,不過一般只會開放一般功能給你用 (除非你是管理員...),而我也不識那麼多。所以我只說一般會用到的功能。

【.htaccess 簡介 】
.htaccess 是一個文字檔,你可以做任何好像 notepad 的文字編輯器去寫一個。
或者你會對 .htaccess 這個名字有點困惑,其實 .htaccess 是一個完全的檔案名,不是 filaname.htaccess 或者甚麼的(當然也有管理員故意把它設定成其他名字,但一般都是用 .htaccess 的)。為何是 .htaccess?因為所有以 "." 開頭的檔名在 *nix 系統中也是有屬性隱藏的,平常列出資料夾時不會出現,所以保安會好一點。你可能會問:『MS Windows 要我一定給它一個名字,如何把它存檔成為 .htaccess?』 其實方法有兩個。第一個是到 ms-dos 的視窗中,按 ren filename.xxx .htaccess 就可以了;第二個是在上傳到伺服器時才改名做 .htaccess。
而 .htaccss 內設定的格式是一行一個指令,如果你的 notepad 設定了自動換行的話,請關上它,這樣會比較安全。
一點要注意, .htaccess 是 apache 的產物,不是 IIS 的。IIS 伺服器不支援它,也就是說你不能以簡單地上傳一個 ASCII 檔去設定在 IIS 伺服器上的 http 服務。
在上載 .htaccess 時,必需使用 ASCII 模式!你或許還要 chmod 它到 644(RW_R__R_)。
每一個放了 .htaccess 的目錄和它的子目錄都會被 .htaccess 影響。如果我在 /abc/ 放了一個 .htaccess,那麼 /abc/ 和 /abc/def/ 內所有 file 都會被它影響,但 /index.html 不會被它影響 ←← 這一點是很重要的。

【密碼保護 】
這是最常見 .htaccess 被使用的功能之一,資料夾密碼保護。
這種方法可以使沒有授權的瀏覽者不能進入你所設定的限制區域,使用了 Javacript 設的密碼太簡單了,一下字就會被破解,而使用 .htaccess 系統就比使用 CGI 程式保護會員專頁將更為有效,更安全。更重要的是使用 .htaccess 方式去設定不需要編寫程式的技能。
首先,你要開啟一般文字編輯工具,做出一個名叫 .htpasswd 的檔名(當然又可能是其他,但一般伺服器都會設定 .htpasswd 是不能經由 http 讀到的。檔案中的的每一句代表一個使用者,使用者名稱以及加密了的密碼是以冒號(分隔。而密碼必須經過加密才可以使用。加密的方法是一般密碼使用了的 crypt,如果你不知如何加密,請到以下的網頁。
UHome
http://www.euronet.nl/~arnow/htpasswd/

注: Win32 版本的 apache 好像不支援用了 crypt 加密法的密碼檔,只支援 SHA1 和 MD5 的。如果你是使用 apahce for win32 版本,請使用 C:\Program Files\Apache Group\Apache\bin\htpasswd.exe 做出以 MD5 加密的密碼檔!!

再在 .htaccess 中,加上以下句子
AuthName MemberPage
AuthType Basic
AuthUserFile /absolute/path/.htpasswd
require valid-user

AuthName 就是當 browser 得知要密碼時所出現的句字,你可以自行改動 MemberPage;而第二句的 AuthType Basic 就千萬不要去改;第三句的 AuthUserFile 就是設定所使用的 .htpasswd 檔,要留意它好像必需是在伺服器上的絕對路徑。請留意,這不是 URL 的位置、也不一定是在 ftp 中看到的位置、就算是由 CGI 自行測到的路徑也未必準確,請細看伺服器上的說明 (例如在 virtualave.net,URL 是 /.htpasswd ftp 看到的是 /public_html/.htpasswd,CGI 測到 /home/public_html/.htpasswd,但是事實上你要設定路徑為 /data1/virtualave.net/USERNAME/public_html/.htpasswd)。
為了保安理由,不建議把 .htpasswd 放到可以用 http 去到的目錄;
最後的 require 就是命令伺服器誰可以進入,require valid-user 就是指只要是 .htpasswd 中的任何一人就可了;你也可以指定在名單上只有某人可以通過,require user username 或 require user username1 username2 username3;也可以指定是某組人才可以,require group groupname。

而設定組的方法是再做一個叫 .htgroup 的文字檔,內容如下:
groupname1: username1 username2 username3
groupname2: username1 username3 username4


再在 .htaccess 中加多一句 AuthGroupFile /absolute/path/.htgroup 和 .htpasswd 的方法一樣,我不再說了。

以 ASCII 模式上傳所有檔案後,在那個資料夾中所有檔案都會被保護。
而再進一步,我們更可以設定個別設定只有某個檔案會密碼,不同檔案要不同的密碼,但是我會晚一點才說。

【自設錯誤報告文件 】
想做到好像 www.microsoft.com 一樣, 找不到文件不只是幾句白底黑字,也不是 IE 本身那個有 bug 的 "找不到網頁",而是另一頁 HTML 文件嗎?
逢法很簡單,首先寫一頁說找不到文件的 HTML,再用 notepad 打開您的 .htaccess。在最後加上一句ErrorDocument 404 404.html
404.html 是錯誤檔案路經,即所顯示的檔案;404 是錯誤碼。以下就是一般會見到的錯誤碼和所代表的錯誤原因。
401 Authorization failed 授權失敗;即是錯誤 password
403 Access denied 存取違規;即是你不可以讀取這個檔案
404 File not found 找不到檔案
500 Internal Server Error 伺服器內部錯誤;可能是 http 伺服器本身是問題,也可能是 CGI 出錯
也有以下兩類做法
ErrorDocument 404 "<html><body>找不到</body></html>"
ErrorDocument 500 http://www.xxx.com/xxx

Ps. 如果所用的錯誤文件是一個 CGI 檔,就會有一點關於那個錯誤的資科放到環境變數內給 CGI 讀取。

【自設首頁檔案 】
這個可以算是最簡單的一個設定了
DirectoryIndex index.html index.htm index.cgi

很簡單,常你的網址是一個目錄,沒有註明檔名時 (如: http://www.xxx.com/) 它會顯示 index.html。如果沒有這個檔案,就找下一個檔案。如果沒有任可一個名單上的檔案,就會依設定列出目錄內的檔名。

【禁止讀取檔案 】
如果你的 CGI 會把秘密的內容(如: 密碼)存到一個檔案,那麼別人只要知道這個檔案的位置,就可以很簡單的看到一切。不想這樣嗎?你可以完全不改變其他設定,不用把那個檔案移到其他地方,只需在 .htaccess 加幾句就可以。
<Files filename.ext>
order allow,deny
deny from all
</Files>

而 Apache 1.3 以後的版本,我們更可以用支援 regular expression 的 filesmatch
<filesmatch "\.tmp">
order allow,deny
deny from all
</filesmatch>

其實 files 也可用 regular expression 的,但要加一個 ~ 在前(例: )。 files 和 filesmatch 的意思就是,內堻Q包著的幾句只會對付合要求的部份檔案生效。
接著我就說有關中間的文字→order deny, allow,就是先找出禁止(deny) 的,才去找例外許可的 (allow)。如果把它們反轉,就是 order allow, deny 就是,就是先找出許可(allow) 的,才去找禁止的 (deny)。之後的 deny form all 就是說,全部 IP 來的都不可以。相對地 allow form all 也就是全部都可以。而你更可以這樣做
order allow,deny
allow form all
deny form 123.456     #所有以 123.456 開始的 IP,如 123.456.1.1

除了設定 IP 外,您也可以設定 hostname(如: xxx.com)
Files 和 Filesmatch 的用途很多,你不但可以設定 deny,更可以設定 個別檔案的密碼,如
<files abc>
require user abc
</files>
<files def>
require user def
</files>


【重新導向文件 】
就是重新導向文件。
Redirect /abc http://www.xxx.com/abcabc
Redirect permanent /def http://www.xxx.com/def

即是說,如果 browser 要求 http://_____/abc 它就會重新導向至 http://www.xxx.com/abcabc而第二句又有甚麼不同呢?答案就是 http 的狀能碼不同,parmanet (301) 是永遠的,代表 browser 下一次未必會再要求這檔案,而直接找另一個。除了 permanent 之外,還有 temp ( 301;和不寫一樣)、seeother(303) 和 gone(410)。
也有 RedirectMatch,不過它就支援 regular expression。

【防止列出目綠內的檔案 】
其實要做到這個目標可以不用 .htaccess,你只要自己寫一頁 index.html 放入去就可以了。但是,用 .htaccess 會方便很多,在 .htaccess 中加一句。
Option -Indexes

這樣做,伺服器就不會多事地把目錄內的檔名列出。如果你只不過是想不列出某幾個檔案,請用以下的設定
IndexIgnore *.gif *.jpg

我想就算只識一點英文的人也會明白,就是在列出檔名時不理會(ignore) 後面的檔案。

Ps. 如果設定了 IndexIgnore *,它就不會列出任何檔案,但是會有 HEADER 和 README 的內容,而它們是可以自設的。

原文出處:[教學] Apache目錄保護 .htaccess 的製作 - 頂客社區 - 免費空間,免費遊戲,免費交友- dk101.com
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|