Apache2.0 + Tomcat5.5 如何禁止目录浏览
2012-01-30 14:08
363 查看
近日无意中发现访问网站路径http://www.xxx.com/WEB-INF/这样的地址后会列出该目录下的所有文件,点击文件WEB-INF下的web.xml可以查看和下载,这样一来,配置的数据库连接信息就都暴露了,存在重大的安全隐患。
该网站是采用Apache2.0 + Tomcat5.5配置的,*.jsp和*.do文件交由TOMCAT处理,其他文件由Apache处理,在Apache的配置文件httpd.conf中,配置了DocumentRoot与Tomcat的webapps/ROOT为相同目录,经过测试发现,如果访问地址不是*.jsp或*.do,并且在目录下没有默认欢迎文件index.html等,就会显示文件目录列表,这样以来Tomcat的webapps/ROOT/WEB-INF下的所有文件都可以下载下来,完全没有安全可言。
经过查阅资料,可以有以下方式解决这个问题:一个是禁止目录索引功能,一个是禁止访问WEB-INF目录下文件的功能,都需要修改apache的配置文件httpd.conf:
1、禁止目录索引功能,查找如下段字符串,删除其中的“Indexes”即可,注意实际字符串可能有所区别:
DocumentRoot "/usr/local/tomcat5/webapps/ROOT"
<Directory "/usr/local/tomcat/webapps/ROOT">
#
Options Indexes FollowSymLinks Includes
#
AllowOverride None
#
Order allow,deny
Allow from all
</Directory>
2、禁止访问WEB-INF目录下文件的功能,在文件尾部加入如下字符串即可:
<Location ~ "/WEB-INF/">
AllowOverride None
Deny from all
</Location>
其中“~ "/WEB-INF/"”是通配符设置,即所有的路径中包含/WEB-INF/都不允许访问。
上面是对Apache的配置,Tomcat也是需要调整的,修改tomcat目录/conf/web.xml文件,如下,将listings改为true:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
特此记录。
该网站是采用Apache2.0 + Tomcat5.5配置的,*.jsp和*.do文件交由TOMCAT处理,其他文件由Apache处理,在Apache的配置文件httpd.conf中,配置了DocumentRoot与Tomcat的webapps/ROOT为相同目录,经过测试发现,如果访问地址不是*.jsp或*.do,并且在目录下没有默认欢迎文件index.html等,就会显示文件目录列表,这样以来Tomcat的webapps/ROOT/WEB-INF下的所有文件都可以下载下来,完全没有安全可言。
经过查阅资料,可以有以下方式解决这个问题:一个是禁止目录索引功能,一个是禁止访问WEB-INF目录下文件的功能,都需要修改apache的配置文件httpd.conf:
1、禁止目录索引功能,查找如下段字符串,删除其中的“Indexes”即可,注意实际字符串可能有所区别:
DocumentRoot "/usr/local/tomcat5/webapps/ROOT"
<Directory "/usr/local/tomcat/webapps/ROOT">
#
Options Indexes FollowSymLinks Includes
#
AllowOverride None
#
Order allow,deny
Allow from all
</Directory>
2、禁止访问WEB-INF目录下文件的功能,在文件尾部加入如下字符串即可:
<Location ~ "/WEB-INF/">
AllowOverride None
Deny from all
</Location>
其中“~ "/WEB-INF/"”是通配符设置,即所有的路径中包含/WEB-INF/都不允许访问。
上面是对Apache的配置,Tomcat也是需要调整的,修改tomcat目录/conf/web.xml文件,如下,将listings改为true:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
特此记录。
相关文章推荐
- 在apache 中配置ldap 及 如何禁止目录浏览
- apache 禁止目录浏览(list)
- 禁止apache和tomcat列出目录清单的方法
- 禁止apache和tomcat列出目录清单的方法
- Apache配置禁止站点目录浏览
- **apache环境下 禁止显示 index of/ 目录下(如何禁止访问网站根目录)
- 如何关闭Apache目录浏览
- Apache设置 禁止目录浏览
- apache 禁止目录浏览(list)
- apache禁止浏览目录
- Apache下实现禁止目录浏览
- tomcat中如何禁止列目录下的文件,404出错页
- 如何在Apache和Nginx禁止上传目录里PHP的执行权限
- 如何在Tomcat5.5设置虚拟目录
- Nginx/Apache下如何禁止指定目录运行PHP脚本
- Apache下实现禁止目录浏览
- 如何设置Apache禁止访问目录(列出目录/文件列表)
- JBoss (Tomcat) 禁止目录浏览
- 如何设置Tomcat目录浏览
- 如何实现访问apache时的目录浏览功能(apache file list view)