Quando invii una richiesta attraverso un proxy, la richiesta che arriva al server di destinazione non è più quella che hai inviato. Il proxy si interpone, modifica alcuni header e nella maggior parte dei casi aggiunge nuovi header. Questi header aggiunti rivelano apertamente che stai usando un proxy — e talvolta il tuo vero indirizzo IP.
È esattamente questa la base tecnica del concetto di livello di anonimato. In questo articolo vediamo quali header vengono aggiunti, che cosa significano e come verificare la tua connessione.
I tre header principali
Se questo header è presente e contiene il tuo vero IP, il proxy rientra nella categoria "trasparente" (transparent) e non garantisce anonimato.
| Header | È standard? | Che cosa trasporta | Effetto sull'anonimato |
|---|---|---|---|
X-Forwarded-For | Standard de facto | Catena di IP client | Può esporre il vero IP |
Forwarded | RFC 7239 | for, by, proto, host | Trasporta la stessa informazione in forma strutturata |
Via | RFC 9110 | Nome e versione degli intermediari | Non fornisce l'IP ma rivela la presenza del proxy |
X-Real-IP | Uso diffuso | Un singolo IP client | Può esporre il vero IP |
X-Proxy-ID / Proxy-Connection | Non standard | Tracce del software proxy | Rivela la presenza del proxy |
I livelli di anonimato nascono da questi header
I tre livelli usati nel settore sono definiti direttamente in base alla presenza di questi header:
Il livello elite non significa "non rilevabile"; significa soltanto che a livello di header non viene lasciata alcuna traccia. Restano comunque altri segnali, come la reputazione dell'IP e il fingerprint TLS.
Il nostro articolo sui livelli di anonimato dei proxy , in cui trattiamo i livelli in un quadro più ampio, spiega quale livello è adatto a quale attività. Per testare il livello della tua connessione usa il nostro strumento di test dell'anonimato puoi usarlo.
Da dove arrivano questi header?
Non è sempre il proxy che usi ad aggiungere questi header. Nella catena possono esserci più intermediari:
Ogni intermediario può aggiungere la propria traccia. L'elenco di header che arriva al livello applicativo della destinazione è la somma di tutta questa catena.
Soprattutto se lavori in una rete aziendale, un intermediario non sotto il tuo controllo X-Forwarded-For potrebbe aggiungerli. In questo caso, anche se il proxy che hai acquistato è elite, l'intermediario all'inizio della catena espone la tua identità.
Come verificare la tua connessione
Il modo per verificare è usare un endpoint che rifletta esattamente come appare la tua richiesta dall'altra parte. Nel settore questi endpoint si chiamano proxy judge ; restituiscono in testo semplice tutti gli header che ricevono.
Metti i due output a confronto. Ogni header che compare in più nella richiesta passata dal proxy è la traccia che lasci.
Se non vuoi farlo a mano, la nostra pagina di test dell'anonimato esegue questo confronto al posto tuo e riporta il livello. Per vedere solo l'IP di uscita e la sua posizione Il mio indirizzo IP del nostro sito.
Con HTTPS la situazione cambia
Un dettaglio importante: nel traffico HTTPS il proxy non può toccare né il corpo né gli header. Nel tunnel stabilito con il metodo CONNECT il proxy trasporta solo byte cifrati; X-Forwarded-For non può aggiungerli perché non riesce nemmeno a vedere la richiesta.
Per questo, sui siti HTTPS, il timore che "un proxy trasparente faccia trapelare il mio IP" è in gran parte infondato — mentre sui siti in HTTP puro è del tutto fondato.
Anche se il proxy non può toccare gli header, CONNECT vede il dominio nella riga e il campo SNI nell'handshake TLS. Quindi anche in HTTPS il proxy sa a quale sito ti colleghi. Ciò che viene cifrato è quello che fai, dove vai no.
Leggere correttamente lato server
L'altra faccia della medaglia: se sul tuo server cerchi di leggere il vero IP del visitatore, questi header sono di importanza vitale — ma non sono affidabili. X-Forwarded-For può essere falsificato dal client.
- Credi solo al valore che arriva dall'intermediario di cui ti fidi. Se è il tuo reverse proxy a scriverlo, il valore più a destra è affidabile.
- Leggi la catena da destra. L'elemento più a destra è l'intermediario più vicino a te e più affidabile.
- Definisci un elenco di proxy attendibili. In Nginx
set_real_ip_from, nei framework applicativi l'impostazione "trusted proxies" serve proprio a questo. - Non basare le decisioni di rate limit e blocco sull'header grezzo; un attaccante può scrivere l'header come vuole.
Pulizia degli header e fingerprint
Liberarsi degli header di proxy da solo non basta. Nel classificare le richieste, i siti di destinazione guardano anche ad altri segnali:
| Segnale | Che cosa rivela | Come gestirlo |
|---|---|---|
| Ordine degli header | Firma della libreria (requests, curl) | Imita l'ordine degli header di un browser |
| Incoerenza dello User-Agent | Versione obsoleta o valore falso | Usa un valore reale e aggiornato |
| Accept-Language | Discrepanza con il paese dell'IP | Invia una lingua coerente con il paese di uscita |
| Fingerprint TLS (JA3) | Libreria client | Motore di browser o client compatibile |
| Reputazione IP / ASN | Origine datacenter | Pool residential o ISP |
In altre parole, un proxy elite che esce da un ASN di datacenter viene comunque classificato facilmente. A questo proposito le nostre proxy residenziale e ISP proxy pagine spiegano perché l'origine dell'ASN è determinante.
Riepilogo
X-Forwarded-For, Via e gli header simili sono le tracce più visibili lasciate dal proxy e costituiscono la definizione tecnica del livello di anonimato. Nel traffico HTTP puro possono esporre il tuo vero IP; in HTTPS invece il proxy non può toccarli. Per vedere la tua situazione il test di anonimato esegui, verifica il tuo IP di uscita con Il mio indirizzo IP e controlla se lasci tracce sul lato DNS con il test DNS leak del nostro sito.