程式碼安全測試第十七期:物件只定義了Equals和Hashcode方法之一的漏洞
一、什麼是“違規的物件模型:物件只定義了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之一“在CWE中被編號為CWE-581: Object Model Violation: Just One of Equals and Hashcode Defined
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2776295/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物件只定義了Equals和Hashcode方法之一的漏洞物件
- String的equals和hashCode方法
- 搞懂 Java equals 和 hashCode 方法Java
- DDD實體值物件的equals和hashcode方法實現 - wimdeblauwe物件
- 自動生成hashcode和equals方法
- Java基礎系列-equals方法和hashCode方法Java
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- java自定義equals函式和hashCode函式Java函式
- 程式碼安全測試第六期:XPath注入漏洞
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 程式碼安全測試第五期:OS命令注入漏洞
- equals & hashCode
- java~重寫hashcode和equalsJava
- 程式碼安全測試第十期:日誌偽造漏洞
- hashCode()和equals()的區別?(skycto JEEditor)
- java為什麼要重寫hashCode和equals方法Java
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- equals&hashCode
- hashCode()與equals()
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- Java基礎- ==和equals和hashCode的區別Java
- 關於重寫equals()和hashCode()的思考
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- ==、equals、hashcode總結
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- Java中hashcode和equals效能注意點 - ShaiJavaAI
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 『Java 語法基礎』對 equals() 和 hashCode() 的理解Java
- 關於equals()和hashcode()的一些約定
- “==”、“equals()”、“hashcode()”之間的祕密
- Hashcode相同但是equals不同的例子
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 關於HashMap的key重寫hashcode和equals的理解HashMap
- MapReduce關於key的定義、hashCode()、equals(Object obj)、compareTo(CustomCombineKey other)Object
- 看似簡單的hashCode和equals面試題,竟然有這麼多坑!面試題
- equals與hashCode關係梳理