강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

insu2012.lee님의 프로필 이미지
insu2012.lee

작성한 질문수

스프링 시큐리티

IP 제어 관련 문의 드립니다.

해결된 질문

작성

·

208

0

안녕하세요..

현재 강의를 듣고 있는데요. Client  IP 접근을 제어해서, 자원에 접근이 안되도록 하는 데모를 보았습니다.

이 기능을 사용할 경우, WAS 앞단에 L4 나 Proxy 와 같은 장치가 있어도, Client IP 를 정상적으로 인식 할 수 있나요?

혹시, L4 나 Proxy 가 있는 경우, 사용자의 Client IP 가 아니고, L4 IP 가 전달되지 않는 지 문의드립니다.

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

네 사용 패턴이 있습니다.

일반적으로는 HttpServletRequest 의 getRemoteAddr() 를 호출하면 되지만 로드밸런스를 위한 proxy server 나 L4 같은 경우는 HTTP Header 인 X-Forwarded-For 값을 확인해서 있으면 이걸 사용하고 없으면 getRemoteAddr() 사용하면 됩니다.

다만 X-Forwarded-For 이 RFP 의 표준스펙은 아니기 때문에 반드시 request header 에 포함된다고 볼 수는 없습니다

그래서 가령  다음과 같이 할 수 있습니다.

         String ip = req.getHeader("X-FORWARDED-FOR"); // L4 , proxy server 로부터 client ip 정보를 조회

if (ip == null)

ip = req.getRemoteAddr();

좀 더 자세한 사항은 구글에서 spring security proxy ip access 로 검색하면 여러 내용이 나오니 참고해 주시기 바랍니다.

insu2012.lee님의 프로필 이미지
insu2012.lee

작성한 질문수

질문하기