限制Tomcat中的文件访问

限制Tomcat中的文件访问,tomcat,web-applications,servlets,security,file-security,Tomcat,Web Applications,Servlets,Security,File Security,我们的产品在apache tomcat服务器上运行,监听端口80和443,存在严重的安全问题。这些端口上传入HTTP/HTTPS数据包的路由由我们的产品类配置,无法确保每个请求的URL都引用一个文件,该文件位于服务器的web根目录中,并且属于允许提供服务的类型 特别是,与url中的“/error/*”匹配的数据包被配置为使用“docroot”文件夹作为提供文件的文档根。因此,也可以访问和下载使用URL编码的反斜杠%5C从/error/(即docroot)目录中穿过的路径。例如,远程用户可以提供一

我们的产品在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中是否有一个设置可用于防止远程用户访问项目根文件夹之外的文件。这将非常有用。

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


对所有请求和响应进行编码可以解决/->%5c问题

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

此处引用(注意:以下URL当前不可用):

根目录包含一个名为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目录下


即使有一些过滤选项,我们可以阻止访问文件路径以外的文件类型,如*.txt、*.properties,这也会非常有用。您好,谢谢您的帮助。但是,你能详细说明一下吗?你好,穆罕默德。如果你能详细解释一下,我将不胜感激。你好,我在webapps/ROOT文件夹中创建了一个名为robots.txt的文本文件,其中包含以下内容——用户代理:*不允许:/*.txt,但仍然可以访问和下载.txt文件。谢谢你的帮助。有人能帮我吗。欢迎提供任何指导。@Gawey“servletworld.com”网站似乎不再托管。