강의

멘토링

커뮤니티

Inflearn Community Q&A

insu2012lee1220's profile image
insu2012lee1220

asked

Spring Security

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

Resolved

Written on

·

208

0

안녕하세요..

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

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

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

javaspring-bootSpring Security

Answer 1

0

leaven님의 프로필 이미지
leaven
Instructor

네 사용 패턴이 있습니다.

일반적으로는 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 로 검색하면 여러 내용이 나오니 참고해 주시기 바랍니다.

insu2012lee1220's profile image
insu2012lee1220

asked

Ask a question