Cuidado con "HTTP_X_FORWARDED_FOR"

  • Autor Autor zcriptz
  • Fecha de inicio Fecha de inicio
zcriptz

zcriptz

1
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Parece que algunos usan:

PHP:
$_SERVER['HTTP_X_FORWARDED_FOR'];

Para obtener la IP del visitante.

Esta es una cabecera enviada por el cliente que es muy fácil de editar, por ejemplo con el siguiente código:

PHP:
<?php
$ip_fake = 'LOQUESEA';
$ch = curl_init('http://myl.ink/ip.php');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR: '.$ip_fake));
echo curl_exec($ch);
curl_close ($ch);
?>

Podría poner 127.0.0.1 y sería local, simular otra IP, o bien poner cualquier cosa.

Si guardan la IP obtenida así en una base de datos, y creyendo que no te pueden inyectar "por la IP" no le haces un escape, te pueden inyectar.
(Hace unos años los clones de Taringa, eran casi todos inyectables por esto mismo)


Así que tengan cuidado con esta cabecera ya que no les garantiza que realmente sea la IP del visitante, háganle un escape y chequeén que tenga formato de IP.
 
Última edición:
Buen consejo! Apuntado :star2:
 
nota guardad gracias
 
no me funciona bro
 
Buen dato amigo, ya que andas por aquí por lo de carpetilla xD tengo una duda, quiero crear una acortador de enlaces para pagar a los usuarios, pero me gustaria saber como evitar el uso de proxy o determinar si es un usuario real y no es un fake. (recomiendame 😉)

Gracias. :encouragement: :encouragement:
 
Excelente info [MENTION=42233]zcriptz[/MENTION] :encouragement:
 
Buen dato amigo, ya que andas por aquí por lo de carpetilla xD tengo una duda, quiero crear una acortador de enlaces para pagar a los usuarios, pero me gustaria saber como evitar el uso de proxy o determinar si es un usuario real y no es un fake. (recomiendame 😉)

Gracias. :encouragement: :encouragement:


Usa el script que ronda por internet de codecanyon😀
 
Última edición:
Muchas gracias por la información, la tendré en cuenta! :encouragement:
 
A tenerlo en cuenta, nunca esta de mas 😛7:
 
Espero les haya servido :encouragement:
 
Si yo se cual es, pero en realidad lo hago desde 0 es por aprendizaje personal... :encouragement: :encouragement:

Bueno, desde CERO, si es muchisimo trabajo :S !
 
En realidad este es un tip que lleva mas de 10 años en la red, hace decadas que se recomienda usar REMOTE_ADDR porque HTTP_X_FORWARDED_FOR no te garantiza nada :topsy_turvy:

:sleeping:
 
En realidad este es un tip que lleva mas de 10 años en la red, hace decadas que se recomienda usar REMOTE_ADDR porque HTTP_X_FORWARDED_FOR no te garantiza nada :topsy_turvy:

:sleeping:

Te sorprendería ver la cantidad de gente que lo sigue usando...
 
Hola, revisé y lo estoy usando jaja

Insertar CODE, HTML o PHP:
if($_SERVER["HTTP_X_FORWARDED_FOR"]){ 
echo "<br/>La dirección IP de tu proxy es:<br/><br/>{$_SERVER['REMOTE_ADDR']}<br/><br/>"; 
echo "<br/>Tu dirección IP real es:<br/><br/>{$_SERVER['HTTP_X_FORWARDED_FOR']}<br/><br/>"; 
}else{ 
echo "<br/>Tu dirección IP en el servidor es:<br/><br/>{$_SERVER['REMOTE_ADDR']}<br/><br/>";}
echo "

¿Cómo puedo mejorarlo?
Un saludo :encouragement:
 
Va para favoritos porque me parece importante. Gracias por compartir. :encouragement: :star2:
 
Atrás
Arriba