Questo codice è un controllo di sicurezza e, come tale, deve essere valutato rispetto alla minaccia che intendeva controllare. In questo caso, non viene concesso alcun accesso speciale in base all'indirizzo IP. Invece, l'indirizzo IP viene utilizzato come vincolo aggiuntivo su un meccanismo di autorizzazione già strong (cookie HTTP).
È vero che un utente malintenzionato potrebbe falsificare l'IP di un utente tramite l'intestazione X-Forwarded-For e ignorare questo controllo aggiuntivo, ma ciò significa che l'utente malintenzionato non deve conoscere solo l'ID sessione dell'utente (cookie), ma anche l'utente Indirizzo IP. Ciò rende più difficile lo sfruttamento del XSS rubato in sessione.
Considera gli altri modi in cui questo controllo avrebbe potuto essere affrontato. Innanzitutto, se il controllo non fosse affatto a posto, qualsiasi attacco di furto di sessione (XSS, sniffing del traffico, SSL MITM, ecc.) Risulterebbe in una sessione completamente utilizzabile per l'utente malintenzionato, senza ulteriori interventi.
Invece, se il controllo fosse implementato senza consultare l'intestazione X-Forwarded-For, ma solo HTTP_REMOTE_ADDR, quindi un utente malintenzionato dietro lo stesso proxy (in una scuola o in un'azienda, per esempio) non avrebbe bisogno di alcuna conoscenza del controllo o l'IP interno dell'utente per avere una sessione completamente utilizzabile, dal momento che tutte le sessioni HTTP in uscita sembrano provenire dallo stesso IP (quello del proxy).
Aggiungendo il controllo per X-Forwarded-For, il controllo richiede a un utente malintenzionato di conoscere l'indirizzo IP dell'utente e la possibilità di spoofarlo nell'intestazione X-Forwarded-For (non tutti gli utenti malintenzionati sono completamente non vincolati, quindi c'è una riduzione del rischio, non un'eliminazione del rischio, dal momento che dobbiamo supporre che ci siano alcuni attaccanti non vincolati.)
Un modo per potenziare questo controllo sarebbe quello di conservare un ulteriore bit di informazioni: la fonte dell'ultimo indirizzo IP che è stato utilizzato. Ad esempio, se la sessione è stata inizialmente concessa e associata a un IP proveniente da HTTP_REMOTE_ADDR, il controllo potrebbe richiedere che il traffico futuro su quella sessione provenga da un IP ottenuto da HTTP_REMOTE_ADDR, non da X-Forwarded-For. Ciò elimina alcune possibilità di spoofing. I guadagni per l'implementazione del check in reverse (preferendo X-Forwarded-For su HTTP_REMOTE_ADDR) probabilmente non valgono la pena, dal momento che è molto più difficile spoofare un vero indirizzo di rete rispetto a un'intestazione HTTP.