php / ajax REMOTE_ADDR configurado para IP de um adaptador de rede falso

Hoje, vi um comportamento bastante estranho de uma aplicação baseada na php. Em uma certa parte do sistema, existe uma UI que usa chamadas AJAX para preencher checkboxs de listview com conteúdo do backend.

Agora, o ouvinte AJAX executa uma verificação de segurança em todos os pedidos recebidos, certificando-se de que somente os IPs de clientes válidos recebam respostas. O IP válido também está armazenado no backend.

Para obter o IP do cliente, eu usei de maneira simples

$_SERVER['REMOTE_ADDR'] 

que funciona para a maioria dos clientes. Hoje encontrei uma instalação onde remote_addr continha o IP de um adaptador de rede que não era aquela que realizava a comunicação real para minha aplicação.

Googling em torno de me agave Entrada do Blog Roshan no topuic :

 function getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))//check ip is pass from prxy { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } 

Infelizmente, o problema persiste.

Alguém já tropeçou nesse tipo de problema (na verdade eu não acho que descobri uma questão completamente nova ^^) e tem uma idéia para mim como corrigir isso?

EDITAR:

Estou dentro

  • Versão PHP 5.2.9-1
  • Apache / 2.2.9 (Win32)

A comunicação é feita através de uma placa LAN regular. Agora, o cliente atual tem vários dispositivos mais. Adaptadores VMNet e tais.

Estou me perguntando como uma configuração de cliente pode “perturbar” um servidor web muito …

TIA

K

Infelizmente, você deve levar todas as informações de IP com um grão de sal.

Os endereços IP são reunidos durante o pedido, levando o pacote e solicitando informações em conta. Infelizmente, esta informação pode ser facilmente falsificada ou até mesmo ser incorreta (com base em um grande número de probabilidades de rede) e não deve ser usada para nada além de propósito de vaidade.