본문 바로가기

보안/시큐어코딩

[CERT JAVA 시큐어코딩표준-06] 메서드(MET)

규칙


메서드의 정확한 용도와 사용방법을 숙지하여 사용하지 않으면 취약한 프로그램을 작성할 수 있다.

MET00-J.  메서드 인자를 검증한다.

MET01-J.  메서드 인자를 검증할 때 절대로 assert를 사용하지 않는다.

MET02-J.  폐지되거나 폐지 예정인 클래스나 메서드를 사용하지 않는다.

MET03-J.  보안 검사하는 메서드는 반드시 private final로 선언해야 한다.

MET04-J.  숨기거나 오버라이드한 메서드의 접근성을 확대하지 않는다.

MET05-J.  오버라이드될 수 있는 메서드를 생성자가 호출하지 않게 보장한다.

MET06-J.  clone()메서드가 오버라이드될 수 있는 메서드를 호출하면 안된다.

MET07-J.  상위 클래스나 인터페이스의 메서드를 가리는 클래스 메서드를 선언하지 않는다.

MET08-J.  동등비교하는 객체는 동등비교할 수 있게 보장한다.

MET09-J.  equals()메서드를 정의하는 클래스는 반드시 hashCode()도 정의해야 한다.

MET10-J.  compareTo()메서드를 구현할 때 일반적인 용법을 지원한다.

MET11-J.  비교연산에 사용하는 키는 불변형이어야 한다.

MET12-J.  finalize() 메서드를 사용하지 않는다.