2012-12-11 82 views
2

我们的产品在侦听端口80和443的apache tomcat服务器上运行时存在严重的安全问题。在这些端口上传入HTTP/HTTPS数据包的路由由我们的产品类进行配置,以确保每个请求的URL都指的是一个文件,它既位于服务器的Web根目录中,又属于允许提供服务的类型。在Tomcat中限制文件访问

特别是,url中匹配'/ error/*'的数据包被配置为使用'docroot'文件夹作为服务文件的文档根目录。因此,也可以访问和下载使用URL编码的反斜杠遍历/ error /(即docroot)目录的路径。例如,远程用户可以给等的URL -

https://MyDomain/error/..%5c..%5csettings.properties 

访问远程文件settings.properties即在相同的水平的docroot。我们正试图通过防火墙规则和网络分段来克服这一点。但是,在tomcat中是否有一个设置可用于防止远程用户访问项目根文件夹以外的文件。这将是非常有用的。

+0

即使有一些过滤选项可以阻止访问文件类型,如文件路径以外的* .txt,* .properties,即使这样做也会非常有用。 – user496934

回答

1

如果你想限制某些文件的直接URL访问,把它们放在WEB-INF目录下。从这里

报价(注意:下面的网址是目前unavalable):
http://www.servletworld.com/servlet-tutorials/web-application-directory-structure.html

根目录中包含一个名为WEB-INF目录下。除WEB-INF目录外的 根目录下的任何东西都可以公开使用,并且可以通过浏览器的URL访问。

WEB-INF目录是Web应用程序的一个私人区域,WEB-INF 目录下的任何文件不能直接从浏览器通过指定 URLhttp://somesite/WEB-INF/someresource.html访问。 Web容器将 不提供此目录的内容。然而,WEB-INF目录中的内容可由应用程序内的类访问。 因此,如果有任何资源(如JSP或HTML文档),您不希望从Web浏览器直接访问它,则应将其放置在WEB-INF目录下。

1

您可以使用机器人限制对错误文件夹的访问。还可以将条目映射到错误/ *到重定向页面。

编码全部请求和响应应该解决/ - >%5c的问题

+0

嗨,谢谢你的帮助。但是,请您详细说明一下。 – user496934

+0

你好穆罕默德..我真的很感激,如果你能详细解释一下。 – user496934

+0

你好,我已经在webapps/ROOT文件夹内创建了一个名为robots.txt的文本文件,内容如下 - User-agent:* Disallow:/*.txt – user496934