2011-09-16 12 views
49

Capisco che un'intestazione HTTP_X_FORWARDED_FOR sia impostata dai server proxy per identificare l'indirizzo IP dell'host che sta effettuando la richiesta HTTP attraverso il proxy. Ho sentito dire che l'intestazione HTTP_CLIENT_IP è impostata per scopi simili.Qual è la differenza tra HTTP_CLIENT_IP e HTTP_X_FORWARDED_FOR?

  1. Qual è la differenza tra HTTP_CLIENT_IP e HTTP_X_FORWARDED_FOR?
  2. Perché uno ha valori diversi rispetto all'altro?
  3. Dove posso trovare le risorse sulla definizione esatta di queste intestazioni.

risposta

45

Nessuna di queste intestazioni è ufficialmente standardizzata. Pertanto:

  1. What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR? - impossibile dirlo. Diversi proxy possono implementarli o meno. Le implementazioni possono variare da un proxy all'altro, e potrebbero non esserlo. La mancanza di una norma genera punti interrogativi.
  2. Why would one have different values than the other? - Vedere il punto 1. Tuttavia, da un punto di vista puramente pratico, l'unica ragione che posso vedere per questi con valori diversi è se è coinvolto più di un proxy: l'intestazione X-Forwarded-For: potrebbe quindi contenere una traccia completa del catena di inoltro, mentre l'intestazione Client-IP: conterrà l'effettivo IP del client. Questa è pura speculazione, comunque.
  3. Where can I find resources on the exact definition of these headers. - Non è possibile. Vedi punto 1.

Ci sembra di essere some kind of de-facto standard per quanto riguarda l'intestazione X-Forwarded-For:, ma dato che non v'è alcuna RFC che definisce questo non può essere invocata vedi commento qui sotto.

Come nota a margine, l'intestazione Client-IP: deve per convenzione essere X-Client-IP: poiché è un'intestazione "definita dall'utente".

+9

Sembra avere un RFC ora: http://tools.ietf.org/html/draft-petersson-forwarded-for-02. Anche se sembra ancora in bozza. – Kevin

+3

RFC 7239 non è più una bozza: https://tools.ietf.org/html/rfc7239 Sembra lo standard futuro per sostituire sia 'X-Forwarded-For' che' X-Client-IP'. –

+2

*** Utile *** _1) _ http://stackoverflow.com/questions/6914457/why-does-servervariableremote-addr-returns-the-server-ip _2) IIS7/8: registrazione del client reale IP nei registri hit di IIS_ https://blogs.iis.net/deanc/iis7-8-logging-the-real-client-ip-in-the-iis-hit-logs _3) Advanced Loging_ 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