Intestazione di risposta HTTP per indicare che la richiesta è stata inoltrata a un altro server dal proxy inverso

4

Dato un sistema di servizi e un proxy inverso, in modo tale che le richieste possano essere elaborate in modo definitivo dal proxy o in ultima analisi gestite da uno qualsiasi dei servizi dietro il proxy.

Sono stati presi in considerazione i campi X-Forwarded-For , Forwarded , X-Forwarded-Host . Sebbene sembrino naturalmente adatti alla fase di richiesta, confonderebbe di usarli nella fase di risposta?

Quale campo di intestazione è convenzionalmente utilizzato per dichiarare l'host che ha fornito principalmente una risposta HTTP?

- La motivazione per includere le informazioni sui server proxy è facilitare il debug e il processo di supporto delle applicazioni.

- Non credo che un utente malintenzionato benefici specialmente dall'apprendere che un servizio utilizza un proxy inverso. I server proxy possono essere identificati con alias che non possono portare ad un accesso diretto ad essi. Nell'immagine sottostante, il server proxy ha l'alias 03 .

Un'implementazione diversa potrebbe utilizzare un alias come segue: X-Backend-Server: mickymouse . Questa è un'informazione inutile per chiunque, ma è l'autore.

    
posta Igwe Kalu 13.09.2018 - 08:14
fonte

2 risposte

2

Penso che quello che vuoi sia Via intestazione. Da RFC,

The "Via" header field indicates the presence of intermediate protocols and recipients between the user agent and the server (on requests) or between the origin server and the client (on responses), similar to the "Received" header field in email

Per quanto riguarda i problemi di sicurezza, è necessario utilizzare pseudonimi per i server interni. Dalla RFC:

An intermediary used as a portal through a network firewall SHOULD NOT forward the names and ports of hosts within the firewall region unless it is explicitly enabled to do so. If not enabled, such an intermediary SHOULD replace each received-by host of any host behind the firewall by an appropriate pseudonym for that host.

Hypertext Transfer Protocol (HTTP / 1.1): sintassi dei messaggi e routing

    
risposta data 11.10.2018 - 11:59
fonte
2

What header field is conventionally used to declare the host that primarily provided an HTTP response?

Nessuno

Un proxy inverso serve risorse per conto di qualche altro server. Rivelare qualsiasi dettaglio sul server di origine è un comportamento quasi universalmente indesiderato e potrebbe rappresentare un potenziale rischio per la sicurezza.

Sarebbe difficile utilizzare X-Forwarded-For , Forwarded e X-Forwarded-Host di intestazioni poiché queste sono utilizzate con i proxy di inoltro.

Se vuoi identificare il server di origine che gestisce una richiesta per scopi di debug, sei libero di usare qualunque intestazione ti piaccia. Un'opzione migliore potrebbe essere quella di impostare un cookie, simile a un cookie di sessione inserito da load balancer, che puoi disattivare quando non più necessario.

Trovare una fonte autorevole è difficile poiché non esiste uno standard ufficiale per questo, ma offro quanto segue.

By intercepting requests headed for your backend servers, a reverse proxy server protects their identities and acts as an additional defense against security attacks.

    
risposta data 09.10.2018 - 15:31
fonte

Leggi altre domande sui tag