限制Tomcat中的文件访问



我们的产品存在严重的安全问题,该产品运行在apache tomcat服务器上,监听端口80和443。这些端口上传入HTTP/HTTPS数据包的路由由我们的产品类配置,无法确保每个请求的URL都指向一个文件,该文件位于服务器的web根目录中,并且属于允许提供服务的类型。

特别是,在url中匹配"/error/*"的数据包被配置为使用"docroot"文件夹作为提供文件的文档根。因此,使用URL编码的反斜杠%5C遍历/error/(即docroot)目录的路径也可以访问和下载。例如,远程用户可以提供类似的url

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

访问与docroot处于同一级别的远程文件settings.properties。我们正试图通过防火墙规则和网络分割来克服这一问题。但是tomcat中是否有一个设置可以用来阻止远程用户访问项目根文件夹之外的文件。这将是非常有用的。

如果您想限制对某些文件的直接URL访问,请将它们放在WEB-INF目录下。

此处引用(注意:以下URL当前不可用):
http://www.servletworld.com/servlet-tutorials/web-application-directory-structure.html

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

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

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

编码所有请求和响应应解决/->%5c问题

相关内容

  • 没有找到相关文章

最新更新