✏️ Java 코드 에디터
취약한 코드
public void doPrivilegedAction(HttpServletRequest request) {
// [취약한 코드] 세션만 확인하고 요청 출처(Referer)를 확인하지 않음
// 공격자가 피싱 사이트에서 요청을 보내도 세션이 유효하면 실행됨
HttpSession session = request.getSession(false);
if (session != null) {
// ... 중요 기능 실행 (예: 회원정보 수정) ...
}
}
💡 수정 가이드 (KISA 가이드)
1. Referer 검증
요청 헤더의 Referer 값이 허용된 도메인으로 시작하는지 확인합니다.
String referer = request.getHeader("Referer");
if (referer != null && referer.startsWith("http://my-secure-site.com")) {
// 정상 실행
} else {
// 차단
}
📊 분석 결과 및 설명
🎯 목표
중요한 상태 변경 요청(수정, 삭제, 등록 등) 시, 요청이 정당한 경로(자사 도메인)에서 시작되었는지 검증해야 합니다.
⚠️ 현재 취약점
CSRF
로그인된 사용자가 공격자가 심어놓은 링크를 클릭하면 사용자의 의지와 무관하게 공격자가 의도한 행위가 실행될 수 있습니다.