关闭apache自动目录列表功能的三种方法

描述:

目标目录启用了自动目录列表功能。

1.当用户访问的网址是某个目录地址的时候,服务器自动显示该目录所包含的文件列表内容。

2. 当用户请求的URL地址是某个目录地址的时候,如果该目录开启了自动列表功能并且WEB服务器默认的页面文件(如index.html/home.html/default.htm/default.asp/default.aspx/index.php等)也不存在,那么该目录所包含的文件就会被自动的以列表的形式显示出来,这样可能就会导致敏感文件被泄露。

危害:

1.任何人都可以浏览该目录下的所有文件列表。

2. 如果该目录不存在默认的主页面文件,并且该目录包含了敏感的文件内容(如应用程序源码文件或其它的重要文件内容),那么将导致敏感文件内容外泄,从而对企业造成直接的经济损失或为恶意攻击者提供进一步攻击的有效信息。

解决方案:

1、如果必须开启该目录的目录列表功能,则应对该目录下的文件进行详细检查,确保不包含敏感文件。

2、如非必要,请重新配置WEB服务器,禁止该目录的自动目录列表功能。

Apache禁止列目录:

方法一,修改httpd.conf配置文件,查找 Options Indexes FollowSymLinks,修改为 Options -Indexes
或者
搜索“Options Indexes FollowSymLinks”,修改为“Options -Indexes FollowSymLinks”即可。
在Options Indexes FollowSymLinks在Indexes前面加上 – 符号。备注:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。这样的话就属于整个Apache禁止目录浏览了。
如果是配置虚拟机,则如下:

  1. <VirtualHost *>
  2.     <Directory "../vhosts/blog.phpha.com">
  3.         Options -Indexes FollowSymLinks # 修改为 -Indexes 即可
  4.     </Directory>
  5.     ServerAdmin mail@jb51.com
  6.     DocumentRoot "../vhosts/blog.phpha.com"
  7.     ServerName shopex:80
  8.     ServerAlias blog.phpha.com
  9.     ErrorLog logs/blog.phpha.com-error_log
  10. </VirtualHost>

方法二,在www 目录下的修改.htaccess配置文件,加入 Options -Indexes。 (推荐)

  1. <Files *>
  2.  Options -Indexes
  3. </Files>

方法三,修改目录配置:

  1. <Directory "D:/Apache/www.511yj.com">
  2. Options Indexes FollowSymLinks # 修改为: Options  FollowSymLinks
  3.     AllowOverride None
  4.     Order allow,deny
  5.     Allow from all
  6. </Directory>

只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes ,Apache 就不会显示该目录的列表了。

总结

1、强烈推荐方法二

2、记得一定重启Apache


发布日期:

所属分类: Apache/Ngnix 标签:   


没有相关文章!