Java存在Hash Collision DoS的安全漏洞。因此如果系统依赖外部提交数据来构造HashMap,可能会存在Hash Collision DoS的问题。
几个比较常见的场景:
1.表单提交的数据保存在一个HashMap中;
2.以Json作为数据交换格式,将Json反序列化为Map对象;
比如:下面"Aa".hashCode()和"BB".hashCode()的值是相等的,放在一个hash桶里面,当构造出大量这种数据时HashMap查找此key对象的value退化为一个链表。
Powered by: 博客园 Copyright © 2024 星龙冰 Powered by .NET 9.0 on Kubernetes