今天在調(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>
也就是說(shuō),在目錄下沒有默認(rèn)首頁(yè)面(如: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)。但如果訪問(wèn)它下面的子目錄就沒什么作用了:
所以,這還是不太安全。
二、修改配置文件安全起見,我建議還是把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文件如需要針對(duì)特定的網(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í),訪問(wèn)同樣的路徑,就會(huì)報(bào)下面的錯(cuò)誤提示:
※ 從服務(wù)層面去屏蔽類似的問(wèn)題,會(huì)比從應(yīng)用層面解決要更安全和可靠。很多應(yīng)用程序的默認(rèn)設(shè)置都是比較寬松的,所以,在對(duì)外公布網(wǎng)站的時(shí)候,務(wù)必做好類似的安全檢查,防止漏洞和隱患。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。