지식

[Client IP] request.getRemoteAddr() X-Forwarded-For

고구마맨 2023. 8. 10. 16:37
반응형

■ 사용자의 IP 정보를 확인해야 할 상황들이 있다. 기존에 신경쓰고 있지 않았던 부분이라 잘 가져오겠지 생각했는데 모든 사용자의 정보가 하나의 IP 정보로 입력되고 있어서 확인하기 위해 소스를 분석해보니 단순히 reqeust에서 getRemoteAddr() 함수를 통해 사용자의 IP를 얻어오고 있었다. 단순하게 WAS에 프로젝트를 올려서 사용했다면 사용자의 IP 정보가 제대로 들어왔을 수 있지만 웹서버를 이용하거나 L4/L7 등을 이용한 로드밸런싱을 하는 경우 또는 중계서버나 프록시 서버가 있을 경우엔 정확하지 않을 수 있다. 그래서 확인하기 위한 방법을 기록한다.


■ X-Forwarded-For

HTTP Header 는  HTTP 헤더 중 하나로, HTTP Server 에 요청한 Client 의 IP 를 식별하기 위한 표준헤더이다.

 - 해당 Header의 정보를 통해 사용자의 IP를 얻어낼 수 있다. 이 외에도 사용자 IP를 식별할 수 있는 헤더도 존재하며 WAS의 종류로 인해 사용하는 헤더가 다를 수 있다. 아니면 새로운 Header를 추가해서 사용자 IP 정보를 담을 수도 있다.

 

 - X-Forwarded-For 정보를 이용하기 위해선 WEB / WAS 에서 설정을 해야 하는 경우들이 있다. 제품별로 설정 방법이 다르므로 필요한 부분은 찾아서 적용해야 한다.

 

 

반응형

'지식' 카테고리의 다른 글

[SESSION] Http-Only , Secure  (0) 2023.09.05
[USB] 쓰기 방지 된 USB  (0) 2023.08.21
[Mac] MacBook Pro(Retina, 13-inch, Late 2013) 배터리 교체  (0) 2023.07.28
[Configure]  (0) 2023.07.20
[JAR] jar 생성 및 해제  (0) 2023.06.23