Inflearn Community Q&A
IP 제어 관련 문의 드립니다.
Resolved
Written on
·
208
0
안녕하세요..
현재 강의를 듣고 있는데요. Client IP 접근을 제어해서, 자원에 접근이 안되도록 하는 데모를 보았습니다.
이 기능을 사용할 경우, WAS 앞단에 L4 나 Proxy 와 같은 장치가 있어도, Client IP 를 정상적으로 인식 할 수 있나요?
혹시, L4 나 Proxy 가 있는 경우, 사용자의 Client IP 가 아니고, L4 IP 가 전달되지 않는 지 문의드립니다.
Answer 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 로 검색하면 여러 내용이 나오니 참고해 주시기 바랍니다.




