Esto puede no ser aplicable generalmente a las conexiones desde localhost pero se debe tener en cuenta los proxies. Si el extremo remoto está utilizando un proxy HTTP, $_SERVER['REMOTE_ADDR']
contendrá la dirección IP de ese proxy en lugar de la dirección IP del cliente.
Sin embargo, si se trata de un proxy que tiene la configuración de privacidad desactivado, entonces usted puede tener la oportunidad de obtener la IP del cliente utilizando el siguiente fragmento:
// will be set by the proxy if no privacy is enabled:
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if(isset($_SERVER['REMOTE_ADDR'])) {
return $_SERVER['REMOTE_ADDR'];
}
Pero si su cliente está utilizando un proxy HTTP con la privacidad habilitado, entonces no tendrá la oportunidad de obtener IP de los clientes.
Seguridad Indirecta (gracias @deceze) Tenga en cuenta que si se basan en la cabecera HTTP_X_FORWARDED_FOR
, será fácil para los atacantes falsificar su IP. Aunque esto también es posible utilizando otras técnicas, será muy fácil utilizar el encabezado HTTP_X_FORWARDED_FOR
. Usted ha sido advertido. Pero de todos modos una aplicación web nunca debe utilizar la información de IP para la seguridad, por lo tanto, es sólo una nota lateral
Es bastante fiable para eso, sí. Y no hay necesidad de aclarar, entendimos;) –