记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

代码安全测试第十七期:对象只定义了Equals和Hashcode方法之一的漏洞

2021-06-14 03:02

一、什么是“违规的对象模型:对象只定义了Equals和Hashcode方法之一”的漏洞?

也就是同一个对象没有同时包含equals和hashcode。因为Java对象需要遵守许多与相等相关的约束条件。其中一个约束条件是两个变量相等则两个变量必须具有相同的哈希值。换句话说,如果a.equals(b)== true,则a.hashCode()== b.hashCode()。

二、 “违规的对象模型:对象只定义了Equals和Hashcode方法之一”的漏洞构成条件有哪些?

满足以下条件,就构成了一个该类型的安全漏洞:

一个类中,只有equals或者hashCode方法中的一个。

三、 “违规的对象模型:对象只定义了Equals和Hashcode方法之一”的漏洞会造成哪些后果?

关键词:数据问题;程序执行异常

在集合中,相等的对象期望拥有相同的哈希值。若某个类定义了equals方法但是没有定义 hashCode方法,则相等的对象可能产生不同的哈希值。

四、“违规的对象模型:对象只定义了Equals和Hashcode方法之一”的漏洞的防范和修补方法有哪些?

在定义了equals方法的类中同时定义Hashcode方法。

五、 “违规的对象模型:对象只定义了Equals和Hashcode方法之一”的漏洞样例:


代码安全测试第十七期:对象只定义了Equals和Hashcode方法之一的漏洞

用悟空
静态代码检测工具分析上述程序代码,则可以发现代码中存在着“违规的对象模型:只定义了Equals和Hashcode之一” 导致的
代码缺陷,如下图:

代码安全测试第十七期:对象只定义了Equals和Hashcode方法之一的漏洞

“违规的对象模型:只定义了Equals和Hashcode之一“在CWE中被编号为CWE-581: Object Model Violation: Just One of Equals and Hashcode Defined

文章来源于互联网:代码安全测试第十七期:对象只定义了Equals和Hashcode方法之一的漏洞


知识来源: https://secvery.com/5901.html

阅读:147722 | 评论:0 | 标签:漏洞 安全

想收藏或者和大家分享这篇好文章→复制链接地址

“代码安全测试第十七期:对象只定义了Equals和Hashcode方法之一的漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

标签云 ☁