禁止apache顯示目錄索引的常見方法


在PHP網站開發中,基於WEB服務器和PHP網站程序代碼的安全考慮,我們需要對相關的目錄或者文件訪問權限進行控制,以防止意外情況的發生,那么我們如何來實現這種功能呢?我們可以通過Apache來實現禁止目錄訪問(禁止游覽列出的目錄或文件列表)、禁止或允許IP與域名訪問目錄的功能。

環境說明

我使用的是DedeCMS DedeAmpz的PHP運行環境,PHP版本5.2.4,Apache版本2.2.4

在Apache中配置禁止目錄訪問,即禁止游覽列出的目錄/文件列表的方法

訪問網站目錄時Apache默認配置為可列出目錄/文件列表,即當你訪問http://localhost時會列出相關的目錄和文件列表,我們可以通過修改Apache配置文件httpd.conf來實現禁止列出目錄/文件列表,方法如下:

1、打開apache配置文件httpd.conf

2、找到

<Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

只需要修改Options Indexes為Options None即可,注:根據PHP運行環境安裝包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,一並改為Options None即可。

3、保存httpd.conf,並重啟Apache即可,此時再訪問http://localhost時, 報apache http 403 禁止訪問錯誤信息

  Forbidden

  You don’t have permission to access / on this server.

Apache單個或多個目錄禁止訪問方法

  這種方法通常用來禁止訪問者訪問后台管理目錄或者程序目錄,方法如下

1、打開apache配置文件httpd.conf

2、創建Directory塊,比如禁止訪問某個類庫目錄,可以這樣實現

<Directory /var/www/www.88181.com/inc>
Order Deny,Allow
Deny from all
</Directory>

上述代碼實現了禁止所有用戶訪問www.88181.com下inc目錄的功能。如要實現禁止訪問所有目錄中inc目錄的功能,只要將

<Directory /var/www/www.88181.com/inc>

更改為

<Directory /var/www/www.88181.com/*/inc>

即可。

3、重啟Apache服務器。

其他說明

1、只允許或禁止某個域名進行目錄訪問

<Directory /var/www/www.88181.com/inc>
    Order Deny,Allow
    Deny from abc.com
    Allow from apache.org
</Directory>

上述代碼實現禁止abc.com域中主機訪問inc目錄,允許apache.org域中主機訪問inc目錄的功能。

2、只允許或禁止某個IP進行目錄訪問

<Directory /var/www/www.88181.com/inc>
    Order Deny,Allow
    Deny from 10.1.1.2
    Allow from 192.168.1.0/255.255.255.0
</Directory>

上述代碼實現禁止IP10.1.1.2訪問www.88181.com/inc目錄,允許IP192.168.1子網中的主機訪問www.88181.com/inc目錄的功能。

注意:Allow from 192.168.1.0/255.255.255.0等同於Allow from 192.168.1或Allow from 192.168.1.0/24

至此,通過配置Apache服務器我們可以實現禁止目錄訪問(列出目錄或文件列表),也可以實現禁止訪問單個或者多個目錄,更可以對訪問者進行控制,比如允許或禁止某個IP或者域名對目錄進行訪問,這些功能對提高和優化WEB服務器的安全性能是必不可少的方法。

 

轉:http://www.linuxidc.com/Linux/2012-11/73914.htm

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM