之前你可能听说过关于 Java 中的哈希表实现上的漏洞,现如今因为 Tomcat 使用了哈希表来存储 HTTP 请求参数,因此也受此问题影响。目前为止,Oracle 尚未为该问题提供补丁。
为此 Tomcat 实现了一个变通的做法,提供一个新的选项 maxParameterCount 用来限制但请求中最大的参数数量,该参数默认值是 10000,这对多数应用程序来说已经足够,这个值也足够用来绕过 JRE 中的哈希表的 bug。
目前该变通方法将会在以下版本中实现:
trunk
7.0.23 onwards
6.0.35 onwards
该方法也将在即将发布的 5.5.35 版本中实现。
如果你正在使用早期的 Tomcat 版本,没有 maxParameterCount 属性,那么可以通过限制 maxPostSize 到 10kb 以下来解决这个问题。
尽管这不是 Tomcat 本身的bug,但 Tomcat 安全团队还是发布了该消息并告知潜在的问题。
关于此漏洞的更详细信息请看