2011-09-16 23 views
49

Entiendo que los servidores proxy configuran un encabezado HTTP_X_FORWARDED_FOR para identificar la dirección IP del host que realiza la solicitud HTTP a través del proxy. Escuché que el encabezado HTTP_CLIENT_IP está configurado para propósitos similares.¿Cuál es la diferencia entre HTTP_CLIENT_IP y HTTP_X_FORWARDED_FOR?

  1. ¿Cuál es la diferencia entre HTTP_CLIENT_IP y HTTP_X_FORWARDED_FOR?
  2. ¿Por qué uno tendría diferentes valores que el otro?
  3. Dónde puedo encontrar recursos sobre la definición exacta de estos encabezados.

Respuesta

45

Ninguno de estos encabezados está oficialmente estandarizado. Por lo tanto:

  1. What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR? - es imposible de decir. Diferentes proxies pueden implementar estos, o no. Las implementaciones pueden variar de un proxy al siguiente, y es posible que no. La falta de un estándar genera signos de interrogación.
  2. Why would one have different values than the other? - Ver punto 1. Sin embargo, desde un punto de vista puramente práctico, la única razón que puedo ver para que estos tengan valores diferentes es si más de un proxy estuvo involucrado - el encabezado X-Forwarded-For: podría contener una pista completa del cadena de reenvío, mientras que el encabezado Client-IP: contendría la IP del cliente real. Esto es pura especulación, sin embargo.
  3. Where can I find resources on the exact definition of these headers. - No se puede. Véase el punto 1.

Hay que parecen ser some kind of de-facto standard con respecto a la cabecera X-Forwarded-For:, pero dado que no hay una RFC que define que esto no se puede confiar en véase el comentario a continuación.

Como nota al margen, el encabezado Client-IP: debe ser por convención X-Client-IP: ya que es un encabezado "definido por el usuario".

+9

Parece tener un RFC ahora: http://tools.ietf.org/html/draft-petersson-forwarded-for-02. Aunque todavía está en borrador, parece. – Kevin

+3

RFC 7239 ya no es un borrador: https://tools.ietf.org/html/rfc7239 Parece el futuro estándar para reemplazar tanto 'X-Forwarded-For' como' X-Client-IP'. –

+2

*** útil *** _1) _ http://stackoverflow.com/questions/6914457/why-does-servervariableremote-addr-returns-the-server-ip _2) IIS7/8: iniciar sesión en el cliente real IP en el IIS hit logs_ https://blogs.iis.net/deanc/iis7-8-logging-the-real-client-ip-in-the-iis-hit-logs _3) Advanced Logging_ https : //www.iis.net/downloads/microsoft/advanced-logging _4) _ http://www.loadbalancer.org/blog/iis-and-x-forwarded-for-header _5) _ https: //www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85 – Kiquenet

Cuestiones relacionadas