【问题标题】:Why does Tomcat stores parameter in a HTTP request为什么Tomcat在HTTP请求中存储参数
【发布时间】:2012-01-02 10:40:02
【问题描述】:

我正在经历大多数语言的哈希函数中报告的 DOS 攻击。 (见Application vulnerability due to Non Random Hash Functions)。

你能告诉我Tomcat或任何网络服务器是否默认将HTTP请求中的参数存储到HashTable之类的数据结构中?

【问题讨论】:

    标签: java web-applications tomcat


    【解决方案1】:

    是的,因为

    • Map<String, String[]> 是最适合存储参数的数据结构
    • HttpServletRequest 有一个 getParameterMap() 方法。

    请注意,此漏洞已在最新版本的 Tomcat 中修复。

    【讨论】:

    • 新版本是否使用 TreeMap?这将是最简单的解决方法。
    • 谢谢...所以 Tomcat 将所有参数存储在 HTTP Req 中。我的应用使用 Tomcat 6。Tomcat 6 中是否有针对上述漏洞的解决方法?
    • 是的。使用已修复此漏洞的 Tomcat 6 版本。见stackoverflow.com/questions/8669946/…
    • @MichaelBorgwardt:我不知道 Tomcat 是否使用 TreeMap 来解决问题。该报告建议在密钥中添加随机部分。
    • @JB Nizet:我认为这是因为基于哈希的映射是某些语言中的内置数据类型,所以当它是 API 的一部分时,您不能轻易切换到不同的实现。
    【解决方案2】:

    解决方法的发行说明链接:

    http://tomcat.10.n6.nabble.com/SECURITY-Apache-Tomcat-and-the-hashtable-collision-DoS-vulnerability-td2405294.html

    严格来说,这不是对哈希冲突问题的“修复”,而是使用大型 POST 参数列表来利用它的限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-26
      • 1970-01-01
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多