起因:
Wed, 28 Dec 2011 22:28:16 GMT apache tomcat公布了一个安全漏洞。
http://mail-archives.apache.org/mod_mbox/www-announce/201112.mbox/%3C4EFB9800.5010106@apache.org%3E
漏洞原理:
在多数web容器的设计中,request都是依靠相应语言的hashtable/hashmap实现,当不同的key存入时如果hash值相等则以链表方式连接。拉链法是解决Hash冲突问题的方法之一,把所有hash值相同的元素链接在同一个单链表中,然后放入到hashtable/hashmap的桶中。这也是jdk中hashmap/hashtable的实现方式。外部拉链法的缺点是:它需要稍微多一些的空间来实现,因为添加任何元素都需要添加指向节点的指针,并且每次探查也要花费稍微多一点的时间,因为它需要间接引用逐一查找匹配,而不是直接访问元素。当大量相同hash值的元素保存时,就会导致链表巨长无比,这时get出对应元素时要在链表里比对key是否相同直到找到对应的元素。
所以此漏洞利用碰撞相同的hash值使得hashtable/hashmap退化为一个长链表,容器从request重新get时,map的计算过程会将时间复杂度巨增,原来一个简单的过程将变成一个很费cpu的过程。
http://www.nruns.com/_downloads/advisory28122011.pdf
http://www.ocert.org/advisories/ocert-2011-003.html
影响到的版本:
Apache Tomcat 5.x
Apache Tomcat 6.x
Apache Tomcat 7.x
解决办法:
tomcat
临时办法:
maxPostSize的默认大小为2097152,当maxPostSize=0时,不限制;maxPostSize=20971520时,为20M,改为一个小于10k的值,所有版本可用
,会影响用户。(在server.xml的Connector中进行配置)
tomcat
持久办法:
升级Apache Tomcat到5.5.35, 6.0.35或7.0.23及以上版本。
这里些版本中,增加了maxParameterCount参数(在server.xml的Connector中进行配置,不配置时默认为10000),maxParameterCount默认值10000。
被扫描出了“Apache Tomcat Web表单哈希冲突拒绝服务漏洞”,需要全面设计线上服务器。升级线上服务器需要注意的地方:
1.备份Tomcat服务器。
2.注意查看server.xml、context.xml。将其中设置的内容更新到新版服务器中。
3.查看Tomcat容器的lib将用户添加的jar拷贝到新的服务器中
4.查看bin目录下的catalina.sh,看看是否跟新版服务器有所不同,尤其是用户可能添加JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=256m"
来设置服务器的可用内存大小等。
分享到:
相关推荐
哈希碰撞的本质及解决方式 哈希碰撞是指两个或多个不同的输入数据经过哈希函数处理后,生成了相同的输出结果。哈希碰撞是一个非常重要的概念,在信息安全、数据存储和数据处理等领域中都有着广泛的应用。 哈希碰撞...
哈希值碰撞工具,通过哈希值,逆向计算出哈希文本,MD5值 。计算机,以及游戏常用的储存数据手段,
综上所述,Apache Tomcat MySQL多服务器集群负载均衡是一种有效的解决方案,通过分布式部署、负载均衡和故障转移策略,可以显著提升系统性能,应对高并发访问,保证服务的高可用性和数据的可靠性。
Apache和Tomcat是两种在Web开发领域广泛应用的服务器软件。Apache是开源的HTTP服务器,而Tomcat是一款开源的Servlet容器,主要用于运行Java应用。当两者整合时,可以实现更高效、灵活的Web服务架构,特别是在处理高...
Apache Tomcat 是一款广泛应用的开源Java Servlet容器,它实现了Java EE Web应用程序的Servlet和JSP规范。Apache Tomcat 集群技术则是为了让多个Tomcat实例协同工作,以提高Web应用的可用性和可伸缩性。在高流量或...
通过Apache和Tomcat的集成与集群,我们可以构建出一个高性能、高可用的Web服务架构。然而,这也需要对网络基础架构、性能调优和故障排查有深入的理解。实际操作中,还需要考虑安全性、监控、日志管理等多个方面,以...
### 哈希碰撞与生日攻击 #### 一、哈希碰撞是什么? 哈希(Hash)是一种算法,用于将任意长度的数据映射为固定长度的值。这些值通常称为哈希值或摘要。哈希算法的一个重要特性是,对于任何给定的输入,其输出始终...
在构建高性能、高可用性的Web服务时,Apache与Tomcat的组合使用是非常常见的策略,尤其在需要实现负载平衡和集群的场景下。Apache通常作为前端服务器处理静态内容,而Tomcat则作为后端应用服务器处理动态请求。接...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache2.2和Tomcat的组合在处理高并发请求时常常被用作负载均衡和集群解决方案。本主题主要探讨的是如何在Apache2.2和Tomcat-6.0.18环境下实现负载均衡与集群...
Apache2.4与Tomcat7集群的搭建是一个常见的高可用性和负载均衡的解决方案,尤其适用于大型Web应用程序。这个集群配置可以提升网站的性能,通过在多个服务器之间分发请求,提高系统的可扩展性和稳定性。 首先,...
通过以上步骤,可以构建一个基本的Apache Tomcat负载均衡系统,提供高可用性和高性能的服务。在实际部署中,还需要考虑安全性、日志管理、故障切换以及性能监控等多个方面,以确保系统的稳定运行。
在构建高性能、高可用性的Web...总之,构建Apache和Tomcat的负载均衡服务器集群是一种常见的Web服务优化策略,通过合理分配静态和动态内容处理,可以有效地应对高并发场景,提升用户体验,同时降低单一故障点的风险。
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而Apache HTTP Server(简称Apache)和Tomcat作为两个广泛使用的开源软件,常被结合使用来处理Java Web应用。Apache2.2作为流行的HTTP服务器,提供了强大的静态...
哈希碰撞对于理解和设计哈希算法至关重要,因为理想的哈希函数应尽量减少这种碰撞的发生。 在信息安全领域,哈希函数被广泛用于密码存储、数据完整性校验和数字签名。例如,为了安全地存储用户密码,系统通常不会...
Apache和Tomcat集群配置是一种常见的高可用性和负载均衡解决方案,特别是在需要处理大量HTTP请求和运行Java Web应用程序的环境中。这个集群设置将Apache作为前端代理服务器,而Tomcat作为后端应用服务器,负责处理...
在IT行业中,尤其是在Web服务领域,Apache和Tomcat是两个非常关键的角色。Apache通常作为HTTP服务器,处理静态内容,而Tomcat则是一个Java应用服务器,主要用于运行Servlet和JSP等动态内容。当我们谈论"Apache,...
Apache可以通过负载均衡策略,如轮询、最少连接、IP哈希等,将请求分配给不同的Tomcat实例。 5. **会话复制与管理** 当用户会话在集群中跨服务器时,需要确保会话状态的一致性。这可以通过会话复制实现,即每个...
Apache集群与Tomcat的整合是实现高可用性和负载均衡的重要技术。Apache作为前端服务器,可以接收客户端请求,并根据配置将这些请求转发给后端的Tomcat应用服务器处理。在这个过程中,Apache的模块(mod)起着关键...
在IT行业中,构建高效、可扩展的Web...总之,Windows环境下的Apache、Tomcat集群、动静分离和负载均衡是构建健壮、高性能Web服务的核心技术。正确实施这些技术,不仅可以提升用户体验,还能确保业务的连续性和可靠性。