개발하는지호 2024. 11. 18. 11:38

회사 업무에서 발생한 이론

 

종종 같은 네트워크 내에서 프록시나 로드 밸런서를 거쳐 연결되는 경우, 클라이언트의 실제 IP 주소가 웹 서버에 직접 전달되지 않기 때문에, 이 경우 X-Forwarded-For 헤더가 필요하게 됩니다.

**X-Forwarded-For (XFF)**는 클라이언트의 실제 IP 주소를 보존하기 위해 사용되는 HTTP 헤더로, 클라이언트 → WAF → 웹서버로 흐르는 트래픽에서 원래 요청을 보낸 사용자의 IP 주소를 웹 서버에 전달할 수 있습니다.

X-Forwarded-For 헤더가 필요한 이유

  1. 실제 클라이언트 IP 파악: 클라이언트가 WAF나 프록시 서버를 거쳐 웹서버에 도달하기 때문에, 웹 서버는 보통 클라이언트의 IP 대신 WAF나 프록시 서버의 IP를 보게 됩니다. 이 경우 X-Forwarded-For를 통해 원래의 클라이언트 IP를 추적할 수 있습니다.
  2. 보안 로깅 및 분석: 클라이언트의 실제 IP가 있어야 웹 서버에서 보안 로그를 정확하게 기록할 수 있고, 보안 사고 발생 시 정확한 사용자 추적 및 분석이 가능합니다.
  3. 접근 제어 및 차단: 보안 규칙을 설정할 때 클라이언트의 실제 IP를 기준으로 접근을 제어하거나 특정 IP를 차단할 수 있습니다.

WAF와 웹서버가 동일한 IP를 가지지 않더라도, 여러 중간 프록시 서버를 거치는 경우가 많으므로 X-Forwarded-For 헤더는 클라이언트의 진짜 IP를 알기 위해 필수적입니다.