如何防止Apache顯示檔案列表

Web開發者發表於2012-01-11

當你在瀏覽器輸入地址:
http://localhost:8080/
如果你的檔案根目錄裡有 index.html,瀏覽器就會顯示 index.html的內容,如果沒有 index.html,Apache將在瀏覽器顯示檔案根目錄的目錄列表,目錄列表包括檔案根目錄下的檔案和子目錄。給網站造成安全風險。
同樣當你輸入一個虛擬目錄的地址:
http://localhost:8080/My/
如果該虛擬目錄下沒有 index.html,瀏覽器也會顯示該虛擬目錄的目錄結構,列出該虛擬目錄下的檔案和子目錄。
我們可以通過修改Apache的配置檔案,來禁止 Apache 顯示目錄結構列表。
開啟httpd.conf ,來看一個目錄配置:

<Directory "D:/WAMP/WWW">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

你只需要將上面紅色程式碼中的 Indexes 去掉,就可以禁止Apache 顯示該目錄結構。使用者就不會看到該目錄下的檔案和子目錄列表了。
Indexes 的作用就是當該目錄下沒有 index.html 檔案時,就顯示目錄結構。
現改為如下:

<Directory "D:/WAMP/WWW">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

另外也可以在 Indexes 前加一個減號 “-”,同樣可以禁止Apache顯示目錄結構。
在Indexes前加 “+” 代表允許目錄瀏覽;加 “-” 代表禁止目錄瀏覽。修改如下:

<Directory "D:/WAMP/WWW">
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

 

相關文章