보안/시큐어코딩

[CERT JAVA 시큐어코딩표준-14] 직렬화(SER)

오픈이지 2013. 12. 10. 10:47

규칙


객체를 파일에 저장하거나 네트워크를 통해 전송하기 위해 요구되는 직렬화를 처리하는 클래스와 메서드를 정확하게 이해하고 프로그램에 적용해야 한다.

SER00-J.  클래스를 변경할 때 직렬화 호환성을 유지한다.

SER01-J.  직렬화 메서드의 적절한 시그너처를 유지한다.

SER02-J.  신뢰 경계 외부로 기밀 객체를 전송할 때 서명하고 봉인한다.

SER03-J.  암호화 안 한 기밀 데이터를 직렬화 하지 않는다.

SER04-J.  보안 관리자를 피해 직렬화 및 역직렬화 할 수 없게 한다.

SER05-J.  내부클래스 객체를 직렬화하지 않는다.

SER06-J.  역직렬화하는 동안 private 가변 컴포넌트는 복사해서 보호한다.

SER07-J.  불변 성질을 갖고 있는 객체는 기본 직렬화 형태를 사용하면 안된다.

SER08-J.  높은 권한을 갖고 있으면 역직렬화하기전에 권한을 최소화 한다

SER09-J.  readObject() 메서드 안에서 오버라이드될 수 있는 메서드를 호출하지 않는다.

SER10-J.  직렬화하는 동안 메모리와 리소스가 누수되지 않게 한다.

SER11-J.  Externalizable 객체의 내용을 덮어쓰지 못하게 한다




작성중...