✏️ Java 코드 에디터
취약한 코드
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
public class TrustAll {
public void disableCheck() {
// [취약점] 모든 호스트 이름을 무조건 신뢰함 (return true)
// 중간자 공격(MITM)에 취약해짐
HostnameVerifier allHostsValid = new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
};
}
}
💡 수정 가이드
1. 기본 검증 사용
취약한 HostnameVerifier를 직접 구현하는 코드를 삭제하고 기본 설정을 사용하거나, false를 반환해야 합니다.
return false; // 또는 코드 자체를 제거
📊 분석 결과
🎯 목표
SSL/TLS 연결 시 `verify()` 메서드가 무조건 `true`를 반환하면 공격자가 위조한 인증서도 통과됩니다. 이를 수정하여 호스트 검증을 수행하도록 하세요.