一、默認情況
默認情況下,Apache的配置文件C:\web\apache2.4\conf/httpd.conf中有如下參數:
引用
<Directory "/var/www/html">
Options Indexes FollowSymLinks ......
</Directory>
也就是說,在目錄下沒有默認首頁面(如:index.html index.php等)時,可以讓用戶直接瀏覽web目錄架構,這可能會導致一些重要的目錄或配置文件被公開。
通常在Web應用上也會做一些安全考慮,以Bo-Blog為例,一些目錄下會有類似的文件:
引用
# cat inc/index.php
<?php die ('Access Denied');
這樣,可以避免用戶直接瀏覽該目錄時,看到整個目錄結構。但如果訪問它下面的子目錄就沒什么作用了:
所以,這還是不太安全。
二、修改配置文件
安全起見,我建議還是把Indexes選項關閉比較好,方法有兩種:
1、全局關閉
修改上面提到的配置文件C:\web\apache2.4\conf/httpd.conf,把:
引用 Options Indexes FollowSymLinks
改為: 引用 Options -Indexes FollowSymLinks
重啟httpd服務即可,這樣可以把所有網站的Indexes選項都取消。
2、修改.htaccess文件
如需要針對特定的網站取消該功能,可以先打開.htaccess支持,
修改C:\web\apache2.4\conf/httpd.conf:
引用 <Directory "/var/www/html">
......
AllowOverride None
......
</Directory>
修改為:
引用
<Directory "/var/www/html">
......
AllowOverride All
......
</Directory>
然后,在各網站的主目錄下寫入一個.htaccess文件,內容有:
引用
# head .htaccess
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
......
保存后馬上生效。 這時,訪問同樣的路徑,就會報下面的錯誤提示:
※ 從服務層面去屏蔽類似的問題,會比從應用層面解決要更安全和可靠。很多應用程序的默認設置都是比較寬松的,所以,在對外公布網站的時候,務必做好類似的安全檢查,防止漏洞和隱患。