Closed ForteEscape closed 3 months ago
추가) 리플렉션을 통한 공격이 아니더라도 private으로 선언하는 경우 해당 클래스 내부의 다른 메소드에서 생성자를 호출 할 수 있게됩니다
throw new AssertionError()
부분을 제외한다면 리플렉션 공격으로 객체 인스턴스 생성이 가능합니다. 해당 상황을 설명해놓은 링크입니다.
https://www.baeldung.com/java-private-constructor-access
private
생성자를 두면 어떤 경우에도 인스턴스를 만들지 못하도록 제한할 수 있다 라고 되어 있습니다. 코드를 보면 다음과 같습니다.궁금한 점은 저기서
throw new AssertionError()
를 제외한 경우에도 성립이 되는지 궁금합니다.저는
throw new AssertionError()
가 존재하지 않을 경우 Reflection을 통한 공격을 통해 객체 인스턴스 생성이 될 수 있다고 생각이 들었습니다.