Passa al contenuto principale

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.

ScenarioIP Sorgente (TCP)Header X-Forwarded-For
Senza iSmartFrameIP UtenteNon presente
Con iSmartFrameIP iSmartFrameIP 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.
Consiglio Tecnico

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:

  1. Verificare la presenza dell'header X-Forwarded-For (o in alternativa X-Real-IP / ISF-IP).
  2. Estrarre il primo valore della lista contenuto nell'header, che rappresenta l'IP originale del client.
Nota sulla configurazione

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:

👉 Riferimenti: HTTP Request Headers