L'indirizzo IP per una richiesta HTTP può essere falsificato?


27

Su un sito Web che sto costruendo, intendo registrare gli indirizzi IP degli invii, nel caso fosse necessario. Non mi dispiace i proxy, ma lo spoofing totale del tuo indirizzo IP vanificherebbe lo scopo.

Per eseguire un'azione GET completa (indipendentemente dal fatto che tu abbia ricevuto o meno), è necessario un indirizzo IP legittimo? O un sito Web può essere spammato con post provenienti da indirizzi IP casuali falsificati?

(Il POST è diverso?)


2
Un altro approccio è quello adottato da DuckDuckGo: non tengono traccia degli indirizzi IP, nel caso in cui vengano richiesti. Vedi la loro politica sulla privacy su duckduckgo.com/privacy.html#s3 . Dici "nel caso fosse necessario" - hai buone idee sul perché potrebbe essere necessario?
Randy Orrison,

Risposte:


31

No. Sì, sì. O forse. Dipende da dove stai ottenendo i dati del tuo "indirizzo IP" e se ti fidi di loro.

Se stai prendendo l'indirizzo dai pacchetti IP stessi, puoi fidarti che chiunque abbia inviato i pacchetti abbia accesso ai pacchetti inviati a quell'indirizzo IP. Ciò può significare che è un utente legittimo di quell'indirizzo IP (per valori appropriatamente limitati della parola "legittimo", in questa era di botnet, proxy aperti e Tor), o che chiunque abbia inviato i pacchetti abbia accesso a un sistema intermedio e può vedere i pacchetti che stai inviando mentre passano.

Tuttavia, con l'ampia prevalenza di proxy inversi, il pacchetto IP può spesso rappresentare in modo errato l'origine della connessione, e così sono state introdotte diverse intestazioni HTTP per consentire al proxy di fornire l'indirizzo IP di origine "reale". Il problema qui è che devi fidarti di chiunque invii l'intestazione per fornire informazioni accurate. Inoltre, le configurazioni predefinite (o fuorvianti) possono facilmente lasciarti aperto allo spoofing di quelle intestazioni. Pertanto, è necessario identificare se eventuali proxy inversi sono legittimamente coinvolti nelle richieste e assicurarsi che (e il server Web) siano correttamente configurati e protetti.


23

No.

Le connessioni TCP (utilizzate da HTTP) richiedono una comunicazione bidirezionale. Mentre puoi falsificare facilmente l'IP di origine di un SYNpacchetto, la SYN-ACKrisposta dal server verrà instradata verso l'IP che hai falsificato nel pacchetto iniziale: non sarai in grado di completare la connessione a meno che tu non riesca a vedere la risposta dal server.

Tuttavia, strumenti di proxy anonimi come Tor possono fornire un mezzo per anonimizzare facilmente la fonte di una connessione - tieni presente che questo può sconfiggere facilmente il controllo dello spam tramite il divieto dell'IP.


12

Risposta breve .. non oggi non puoi.

In passato i computer erano molto prevedibili nei numeri di sequenza per il traffico TCP. Ciò significa che un utente malintenzionato invierebbe solo traffico legittimo fino a quando non abbia capito i numeri di sequenza e potrebbe fare un'ipotesi abbastanza buona su cosa sarebbe successo dopo. Quindi invierebbe il traffico TCP per simulare un indirizzo IP contraffatto e l'host dall'altra parte ci crederebbe. Quindi potresti falsificare la stretta di mano a tre vie .

Oggi e direi più di 10 anni .. i computer sono molto più bravi a randomizzarlo, quindi è piuttosto difficile se non impossibile. Secondo me sarebbe una perdita di tempo per un aggressore farlo.


8

HTTP funziona su TCP. Affinché TCP funzioni, è necessario l'handshake SYN / ACK a 3 vie completo prima di arrivare abbastanza lontano da emettere una richiesta GET o POST, quindi una semplice fonte falsificata non farà molto. Altre forme più avanzate di spoofing (MitM) sarebbero comunque efficaci.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.