O endereço IP de uma solicitação HTTP pode ser falsificado?

27

Em um site que estou construindo, planejo registrar os endereços IP de envios, caso seja necessário. Não me importo com proxies, mas a falsificação total do seu endereço IP anularia o objetivo.

Para executar uma ação GET completa (independentemente de você receber ou não ter sido executada) é necessário um endereço IP legítimo? Ou um site recebe spam de postagens de endereços IP falsificados aleatórios?

(O POST é diferente?)

TND
fonte
2
Outra abordagem é a adotada pelo DuckDuckGo: eles não rastreiam endereços IP, apenas no caso de serem solicitados. Veja a política de privacidade deles em duckduckgo.com/privacy.html#s3 . Você diz "apenas no caso de ser necessário" - você tem boas idéias para isso?
precisa saber é o seguinte

Respostas:

31

Não. Bem, sim. Ou talvez. Depende de onde você está obtendo seus dados de "endereço IP" e se confia neles.

Se você estiver usando o endereço dos próprios pacotes IP, poderá confiar que quem enviou os pacotes terá acesso aos pacotes enviados para esse endereço IP. Isso pode significar que é um usuário legítimo desse endereço IP (para valores apropriadamente limitados da palavra "legítimo", nesta era de botnets, proxies abertos e Tor), ou que quem enviou os pacotes tem acesso a um sistema intermediário e pode ver os pacotes que você está enviando à medida que passam.

No entanto, com a ampla prevalência de proxies reversos, o pacote IP geralmente pode deturpar a origem da conexão e, portanto, vários cabeçalhos HTTP foram introduzidos para permitir que o endereço IP de origem "real" seja fornecido pelo proxy. O problema aqui é que você precisa confiar em quem está enviando o cabeçalho para fornecer informações precisas. Além disso, as configurações padrão (ou copiadas incorretamente) podem facilmente deixar você aberto à falsificação desses cabeçalhos. Portanto, você precisa identificar se algum proxy reverso está legitimamente envolvido em suas solicitações e garantir que eles (e seu servidor da web) estejam configurados e protegidos adequadamente.

mulher
fonte
23

Não.

As conexões TCP (que o HTTP usa) requerem comunicação bidirecional. Embora você possa falsificar o IP de origem de um SYNpacote facilmente, a SYN-ACKresposta do servidor será roteada para o IP que você falsificou no pacote inicial - você não poderá concluir a conexão, a menos que possa ver a resposta do servidor.

No entanto, ferramentas de proxy anônimas como o Tor podem fornecer um meio de anonimizar facilmente a fonte de uma conexão - lembre-se de que isso pode anular o controle de spam banindo IP facilmente.

Shane Madden
fonte
12

Resposta curta .. hoje não, você não pode.

No passado, os computadores eram muito previsíveis nos números de sequência do tráfego TCP. Isso significa que um invasor apenas enviaria tráfego legítimo até descobrir os números de sequência e poderia adivinhar o que viria a seguir. Em seguida, ele enviava o tráfego TCP para imitar um endereço IP falso e o host do outro lado acreditava. Então você pode fingir o aperto de mão de três vias .

Hoje e eu diria que mais de 10 anos .. os computadores são muito melhores ao randomizar isso, então é bem difícil, se não impossível. Seria uma perda de tempo, na minha opinião, um invasor fazer isso.

Mike
fonte
8

HTTP executado sobre TCP. Para que o TCP funcione, você precisa do handshake de três vias SYN / ACK antes de chegar longe o suficiente para emitir uma solicitação GET ou POST, para que uma fonte falsificada simples não faça muito. Outras formas mais avançadas de falsificação (MitM) ainda seriam eficazes.

techieb0y
fonte