Gestione IP e Client
Quando implementi iSmartFrame sul tuo sito, il flusso delle connessioni cambia. iSmartFrame diventa il punto di contatto principale per le richieste: non viene più contattato direttamente il server del cliente, ma rispondono gli indirizzi IP di iSmartFrame.
È quindi buona norma cambiare la logica di acquisizione dell'IP dell'utente per riflettere questa nuova architettura.
Differenze di Funzionamento
Ecco un confronto tra il funzionamento standard e quello con iSmartFrame attivo.
1. Senza iSmartFrame
In questa configurazione, il browser del visitatore si collega direttamente al tuo server.
- Flusso:
Client (IP: x.x.x.x)—>Tuo Server - Identificazione: Il tuo server legge l'IP direttamente dalla connessione TCP (
REMOTE_ADDR). - Risultato: L'IP rilevato è quello reale dell'utente (x.x.x.x).
2. Con iSmartFrame
Con iSmartFrame attivo, il server del cliente non comunica più direttamente con l'utente finale. Sono i server di iSmartFrame a rispondere alle chiamate e a inoltrare le richieste necessarie.
- Flusso:
Client (IP: x.x.x.x)—>iSmartFrame (IP: x.x.x.x)—>Tuo Server - Identificazione: Il server riceve la connessione dagli IP di iSmartFrame.
- Risultato: Se si continua a usare la logica standard, l'IP rilevato sarà quello di iSmartFrame e non quello del visitatore.
Cambio di Logica: X-Forwarded-For
Per recuperare l'identità corretta del visitatore, è necessario aggiornare la logica applicativa per leggere l'header HTTP X-Forwarded-For invece dell'IP di connessione diretta.
| Scenario | IP Sorgente (TCP) | Header X-Forwarded-For |
|---|---|---|
| Senza iSmartFrame | IP Utente | Non presente |
| Con iSmartFrame | IP iSmartFrame | IP Utente |
Questo header rivela l'indirizzo IP del client che si connette a iSmartFrame e viene trasmesso esclusivamente per il traffico che ha origine dai sistemi iSmartFrame verso il tuo server web di origine.
Oltre allo standard X-Forwarded-For, iSmartFrame può fornire l'IP del visitatore anche attraverso i seguenti header proprietari o specifici, che puoi utilizzare per una maggiore precisione nella tua logica di backend:
X-Real-IP: Contiene l'IP reale del client che ha effettuato la richiesta.ISF-IP: Header specifico di iSmartFrame che identifica univocamente l'IP dell'utente finale.
Sebbene X-Forwarded-For sia lo standard de facto, utilizzare ISF-IP o X-Real-IP ti permette di gestire in modo più diretto l'indirizzo IP senza dover processare stringhe di IP multipli (spesso presenti nel XFF in caso di proxy concatenati).
Come procedere
Per garantire la corretta identificazione dei visitatori, non devi più fare affidamento sulla variabile d'ambiente dell'IP remoto (es. REMOTE_ADDR), ma configurare il tuo applicativo o il tuo web server per:
- Verificare la presenza dell'header
X-Forwarded-For(o in alternativaX-Real-IP/ISF-IP). - Estrarre il primo valore della lista contenuto nell'header, che rappresenta l'IP originale del client.
Senza questo adeguamento, i log di accesso, le statistiche di traffico e i sistemi di sicurezza (come firewall o limitatori di frequenza) identificheranno tutto il traffico come proveniente da un'unica sorgente (gli IP di iSmartFrame). Ciò potrebbe causare falsi positivi nei sistemi di sicurezza e rendere inutilizzabili le analisi sui dati geografici degli utenti.
Approfondimenti
Per maggiori dettagli tecnici sulla struttura delle richieste e l'elenco completo degli header gestiti, consulta la sezione dedicata: