728x90
반응형
참고: 안드로이드 시큐어코딩 가이드
참고: CWE-581 Object Model Violation: Just One of Equals and Hashcode Defined
참고: Seven pernicious kingdoms
설명
Java 표준에 따르면 Java의 같은 객체는 같은 해시코드를 가져야합니다. 즉 "a.equals(b) == true" 이면 "a.hashCode() == b.hashCode()” 이어야 합니다. 따라서 한 클래스 내에 equals()와 hashCode()를 구현할 때 둘 다 구현하거나 둘 다 구현하지 않아야 합니다.
안전한 코딩
한 클래스 내에 equals()를 정의했으면 hashCode()도 정의해야 하고 hashCode()를 정의했으면 equals()도 정의해야 합니다.
예제 (Java)
equals()와 hashCode() 중 하나만 정의 하여 사용했습니다.
위의 코드처럼 equals()와 hashCode() 모두를 정의해야합니다.
반응형
'cs' 카테고리의 다른 글
[네트워크] 패킷 Packet (2) | 2022.09.23 |
---|---|
[네트워크] NAT - Network Address Translation (3) | 2022.09.20 |
[시큐어 코딩/Secure Coding] API 악용 - null 파라미터 미검사 (0) | 2019.02.14 |
[정보보안] Seven pernicious kingdoms: 소프트웨어 보안 에러의 분류 (0) | 2019.02.12 |
[시큐어 코딩/Secure Coding] 입력 데이터 검증 및 표현 - 상대 경로 탐색 (0) | 2019.02.11 |
댓글