利用.htaccess來保護主機下的目錄與檔案
一般來說蠻多虛擬主機預設是沒有開啟保護網站主機目錄下的檔案,其實蠻危險的,假若你的目錄下忘記放置index檔案,那很可能您目錄就被看光,一個不小心很可能重要資料就被拿走,這是蠻嚴重的一件事情。如果是Linux主機,我們可以透過簡易的.htaccess語法來保護網站主機目錄下的檔案,讓別人無法輕易看見。
平常我們使用的最簡單保護目錄的方法,莫過於使用「index.php」、「index.html」等等之類的網站index檔案,因為主機內預設 的設定在目錄中預設就是要抓index檔案,而index檔案通常會有很多種,主機會依續排列下來抓取,所以可以設定index檔案來讓主機抓取,以達到 保護目錄的效果。但如果主機需要的index檔案沒有一個存在,這時候主機就會直接顯示目錄內的東西了,因為主機不知道要抓取誰當作主要網頁,所以會全部 顯示。
雖然使用index檔案來保護目錄是可行的,但是每個子目錄都需要傳一個index檔案其實蠻累人的,這時候我們就可以利用「.htaccess」來批量處理,不知道大家還記不記得之前介紹過很多「.htaccess」的妙用,例如圖片防盜連、封鎖搜尋引擎、封鎖特定國家的訪客等等,都是利用.htaccess來達成,這回要防止主機下的目錄、檔案被看光,一樣也是利用它,我們只要在網站根目錄建立一個.htaccess檔案就可以保護所有子目錄囉!
當我們使用剛剛的一小串語法後,你會清楚的看到主機端會告訴你,你沒有權限存取這個目錄下所有的東西,這樣別人就不知道你這個目錄下到底放了什麼檔 案囉!當然使用了這個語法並不會你網站在存取這個檔案的權限,它只是讓你無法在該目錄下看到,但事實上,若你網站上有使用到這檔案,還是可以正常使用的, 圖片不會出現錯誤、檔案下載也不會無法下載。
平常我們使用的最簡單保護目錄的方法,莫過於使用「index.php」、「index.html」等等之類的網站index檔案,因為主機內預設 的設定在目錄中預設就是要抓index檔案,而index檔案通常會有很多種,主機會依續排列下來抓取,所以可以設定index檔案來讓主機抓取,以達到 保護目錄的效果。但如果主機需要的index檔案沒有一個存在,這時候主機就會直接顯示目錄內的東西了,因為主機不知道要抓取誰當作主要網頁,所以會全部 顯示。
雖然使用index檔案來保護目錄是可行的,但是每個子目錄都需要傳一個index檔案其實蠻累人的,這時候我們就可以利用「.htaccess」來批量處理,不知道大家還記不記得之前介紹過很多「.htaccess」的妙用,例如圖片防盜連、封鎖搜尋引擎、封鎖特定國家的訪客等等,都是利用.htaccess來達成,這回要防止主機下的目錄、檔案被看光,一樣也是利用它,我們只要在網站根目錄建立一個.htaccess檔案就可以保護所有子目錄囉!
產生.htaccess檔案
如果要使用.htaccess來保護目錄,其實做法很簡單,首先請開啟您的FTP軟體,先開啟FTP軟體可以顯示.htaccess隱藏檔案,然後連線到您網站的FTP,如果上面已經有.htaccess請下載回來,如果沒有.htaccess檔案,請您開啟記事本新增一個文字文件,然後儲存檔名是「htaccess.txt」。加入保護目錄檔案語法
語法非常的簡單,首先請開啟您剛建立的「.htaccess」檔案,在檔案的最開頭加入以下語法一小段語法就可以了。Options -Indexes接著請您將.htaccess.txt存檔並將檔案上傳您的網站的FTP空間,接著請在FTP端將剛剛上傳的檔案更名為「.htaccess」,如果沒有更正,那.htaccess檔案是不會產生任何保護目錄的效果喔!
Forbidden 網頁禁止存取
在還沒使用禁止存取目錄的語法之前,目錄下所有檔案或是資料夾訪客可以一目瞭然的看光光,也可以輕鬆將所有檔案下載走,如果目錄內存有重要的資料,就很有可能被下載走,那就危險了。當我們使用剛剛的一小串語法後,你會清楚的看到主機端會告訴你,你沒有權限存取這個目錄下所有的東西,這樣別人就不知道你這個目錄下到底放了什麼檔 案囉!當然使用了這個語法並不會你網站在存取這個檔案的權限,它只是讓你無法在該目錄下看到,但事實上,若你網站上有使用到這檔案,還是可以正常使用的, 圖片不會出現錯誤、檔案下載也不會無法下載。
語法的進階使用
當然該語法還有其他相關的用途,以下列出簡單的幾項供大家參考使用,如果你覺得以下的語法不是你想要或是想學更多,你可以到Apache官方網站來看看英文說明書,查看看還有什麼關於「indexoptions」的用途或是其他不錯的功能喔!- Options +Indexes:顯示目錄下所有檔案
- Options -Indexes:隱藏目錄下所有檔案 (上面已經介紹過)
- IndexOptions +FancyIndexing:顯示目錄下所有檔案,檔案前面包含檔案類型的小圖示
- IndexOptions -FancyIndexing : 顯示目錄下所有檔案,但不包含檔案類型的小圖示
- IndexIgnore *.php *.exe:隱藏特定的檔案, 其餘檔案正常顯示(隱藏所有的php和exe檔案)
留言
張貼留言