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