X-Forwarded-For
X-Forwarded-ForHTTP |
---|
![]() |
요구 방식 |
헤더 필드 |
응답 상태 코드 |
보안 접근 제어 방법 |
보안 취약성 |
X-Forwarded-For(XFF) HTTP 헤더필드는 HTTP 프록시 또는 로드밸런서를 통해 웹 서버에 접속하고 있는 클라이언트의 발신기지 IP 주소를 식별하기 위한 일반적인 방법입니다.
그X-Forwarded-For
Squid 캐시 프록시 서버의 [citation needed]개발자에 의해 HTTP 요청 헤더가 도입되었습니다.
X-Forwarded-For
는, 1개 또는 복수의 다른 어카운트로부터 전자 메일메시지가 전송 된 것을 나타내는 전자 메일 송신기이기도 합니다(자동으로 [1]송신됩니다).
XFF 등의 기술을 사용하지 않으면 프록시를 통한 접속은 프록시 서버의 원래 IP 주소만 표시되므로 프록시 서버가 사실상 익명화 서비스로 바뀌기 때문에 원래 IP 주소를 사용할 수 있는 경우보다 부정 액세스의 검출과 방지가 훨씬 어려워집니다.XFF의 유용성은 원래 호스트의 IP 주소를 올바르게 보고하는 프록시 서버에 의존합니다.이 때문에, XFF 를 효과적으로 사용하려면, 예를 들면, 어떤 프록시가 신뢰할 수 있는 서버의 화이트 리스트에서 검색되는 등, 어느 프록시가 신뢰할 수 있는지를 파악할 필요가 있습니다.
포맷
필드의 일반적인 형식은 다음과 같습니다.[2]
X-Forwarded-For: 클라이언트, 프록시1, 프록시2
여기서 value는 쉼표+공간으로 구분된IP 주소 목록입니다.왼쪽 끝은 원래 클라이언트입니다.또한 요구를 통과시킨 각 연속된 프록시는 요구를 수신한IP 주소를 추가합니다.이 예에서는 요구가 proxy1, proxy2 및 proxy3(헤더에는 표시되지 않음)을 통과했습니다.proxy3는 요청의 리모트주소로 표시됩니다.
예:[3]
X-전송 대상: 203.0.113.195, 70.41.3.18, 150.172.238.178 X-전송 대상: 203.0.113.195 X-전송 대상: 2001:db8:85a3:8d3:13:1319:8:8a:3:737:70:73
X-Forwarded-For 필드는 쉽게 위조할 수 있으므로 지정된 정보를 주의하여 사용해야 합니다.가장 오른쪽의 IP 주소는 항상 마지막 프록시에 접속하는 IP 주소입니다.즉, 가장 신뢰할 수 있는 정보원이 됩니다.X-Forwarded-For 데이터는 정방향 또는 역방향 프록시 시나리오에서 사용할 수 있습니다.
체인의 마지막 프록시 IP 주소가 X-Forwarded-For 필드에 포함되지 않고 실제 IP 헤더에 있기 때문에 X-Forwarded-For 필드를 로깅하는 것만으로는 충분하지 않습니다.웹 서버는 요청의 소스 IP 주소와 X-Forwarded-For 필드 정보를 모두 기록해야 합니다.
프록시 서버 및 캐시 엔진
X-Forwarded-For 필드는 대부분의 프록시 서버에서 지원됩니다.
X-Forwarded-For 로깅은 Apache를 비롯한 많은 웹 서버에서 지원됩니다.IIS는 이 [4][5][6]필터링에 HTTP 모듈을 사용할 수도 있습니다.
Zscaler는 Z-Forwarded-For를 사용하여 X-Forwarded-For 헤더를 마스크한 후 발신기지 고객 IP 주소를 식별하는 자체 X-Forwarded-For 헤더를 추가합니다.이를 통해 Zscaler Enforcement Nodes에서 내부 IP 주소가 누출되는 것을 방지하고 서드파티 콘텐츠공급자에게 고객의 진정한 IP 주소를 제공합니다.이것에 의해, RFC 준거 이외의 HTTP 요구가 발생합니다.
대안과 변종류
RFC7239에서는Forwarded
용도는 비슷하지만 보다 많은 기능을 가진HTTP 헤더X-Forwarded-For
HTTP [7]헤더의 예Forwarded
헤더 구문:
전송: for=192.0.2.60;filen=filength;by=filength.43
HAProxy는 PROXY 프로토콜을 정의하며, 이 프로토콜은 발신측 클라이언트의 IP 주소를 사용하지 않고 통신할 수 있습니다.X-Forwarded-For
또는Forwarded
header를 [8]클릭합니다.이 프로토콜은 여러 전송 프로토콜에서 사용할 수 있으며 내부 프로토콜을 검사할 필요가 없으므로 HTTP에 국한되지 않습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "{title}". Archived from the original on 2014-09-20. Retrieved 2014-05-05.
- ^ "squid : follow_x_forwarded_for configuration directive". Squid-cache.org. Retrieved 12 November 2017.
- ^ "X-Forwarded-For". MDN Web Docs. Retrieved 2020-11-06.
- ^ IIS용 Winfrasoft XFF.Winfrasoft.com
- ^ IIS 상세 로깅Iis.net (2009-08-10)2013-06-05에 취득.
- ^ X-Forwarded-For HTTP Module for IIS7, Source Included! by Joe Pruitt는 2012-01-06을 Wayback Machine Devcentral.f5.com에서 아카이브했습니다.(2013-07-05).
- ^ Petersson, A; Nilsson, M (June 2014). Forwarded HTTP Extension. IETF. doi:10.17487/RFC7239. RFC 7239. Retrieved February 20, 2020.
- ^ 윌리 타로: 프록시 프로토콜입니다.haproxy.1wt.eu 를 참조해 주세요.2012-12-24에 취득.
외부 링크
- Apache mod_extract_forwarded