最近Tomcat发布了CVE-2018-11784(Apache Tomcat重定向问题),并说我使用的tomcat 7版本受到影响。
https://bugzilla.redhat.com/show_bug.cgi?id=1636512 https://lists.apache.org/thread.html/23134c9b5a23892a205dc140cdd8c9c0add233600f76b313dda6bd75@%3Cannounce.tomcat.apache.org%3E
但是,他们也提到了应该采取的缓解措施。缓解步骤之一是在context.xml中将属性mapperDirectoryRedirectEnabled和mapperContextRootRedirectEnabled都设为true。
当前我们不使用任何属性,但根据apache tomcat documentation(https://tomcat.apache.org/tomcat-7.0-doc/config/context.html)),如果未使用,则这些属性的默认值如下所示:
tomcat cve还提到,如果mapperDirectoryRedirectEnabled =启用, “ 如果启用,则如果需要,映射器(而不是默认的Servlet)将重定向对Web应用程序目录的请求(添加斜杠)。这效率更高,但具有确认目录的副作用是存在的。如果未指定,则使用默认值false。 ”
能否让我知道使用这些属性或启用这些属性时可能发生的副作用?
答案 0 :(得分:0)
当前我们不使用任何属性,但根据apache tomcat documentation(https://tomcat.apache.org/tomcat-7.0-doc/config/context.html)),如果未使用,则这些属性的默认值如下所示:
在线文档适用于Tomcat的当前(最新)发行版。在撰写本文时即为7.0.91
。
如果使用的是任何旧版本,则必须查阅自己的文档webapp副本以获取所使用的版本。特别是在处理安全敏感选项时。请注意,可以从下载页面中的链接从“存档”站点下载旧版本。每个版本都有一个“完整文档”档案(fulldocs.tar.gz)。
这些选项控制着当客户端请求http://yousite/yourapp
或http://yousite/yourapp/yourdir
时,如果URL中没有尾部“ /”,则会发生什么情况。
Tomcat应该分别通过302
重定向到http://yousite/yourapp/
或http://yousite/yourapp/yourdir/
进行响应。
选项控制重定向发生的位置(在调用堆栈/管道中)。管道通常为Connector
(土狼)→CoyoteAdapter
→Mapper
→Valves
→Filters
→Servlet
。
如果重定向发生在Mapper
中,则意味着302
重定向响应将在任何Valve
查看请求之前发送给客户端。如果您的管道中有RemoteAddrValve
,它将看不到该请求,也没有机会拒绝它。
旧版本的Tomcat(早于2015年12月-早于7.0.66)都表现为两个 mapper * RedirectEnabled 选项都为true。