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