Serializable
-
[Java] Effective Java 3/E 정리 - 12장 직렬화Study/이펙티브 자바 2021. 8. 16. 20:54
객체 직렬화란 자바가 객체를 바이트 스트림으로 인코딩하고 (직렬화) 그 바이트 스트림으로부터 다시 객체를 재구성하는 (역직렬화) 메커니즘이다. 직렬화된 객체는 다른 VM에 전송하거나 디스크에 저장 후 나중에 역직렬화할 수 있다. 이번 장은 직렬화의 위험과 그 위험을 최소화하는 방법에 대해 알아보자. Item 85. 자바 직렬화의 대안을 찾으라 직렬화는 생각보다 장점보다 위험성이 크다. 특히 역직렬화 과정에서 호출되는 readObject(Serializable 인터페이스 구현시)는 클래스 패스안의 거의 모든 타입 객체를 만들어내고 모든 코드를 수행할 수 있기 때문에 모든 코드가 공격 대상이 될 수 있다. 가젯(gadget) 역직렬화 과정에서 호출되어 잠재적으로 위험한 동작을 하는 메서드를 가젯(gadget..