보안/시큐어코딩
[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 객체의 내용을 덮어쓰지 못하게 한다
작성중...