Foros del Web » Programando para Internet » PHP »

evitar surfeadores

Estas en el tema de evitar surfeadores en el foro de PHP en Foros del Web. Estoy tratando de evitar en mi web q entre gente a traves de paginas y servicios de navegación anónima, q básicamente esconden la ip de ...
  #1 (permalink)  
Antiguo 27/11/2007, 05:43
Avatar de helyanne  
Fecha de Ingreso: marzo-2005
Ubicación: madrid
Mensajes: 119
Antigüedad: 19 años
Puntos: 0
Pregunta evitar surfeadores

Estoy tratando de evitar en mi web q entre gente a traves de paginas y servicios de navegación anónima, q básicamente esconden la ip de los visitantes.

He puesto bastantes medidas de momento, en javascript comprobar el document.domain, por ejemplo, tengo baneadas montón de ips de todo tipo... cuando los detecto los redirecciono a sitios diversos.

pero todavía no se como hacer para detectar si en vez de usar una pagina q ofrece este servicio, se esta usando un programa, ya q estos no cambian el document.domain, ni varian la URL, solo esconden la ip, q yo sepa.

Por ahi dicen q seguramente seria mas cosa del servidor, pero sigo sin saber q hacer.

Alguna idea?
__________________
___________________

...::: ¡¡ SuperEli.com !! :::...
  #2 (permalink)  
Antiguo 27/11/2007, 08:39
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: evitar surfeadores

Hola. Yo tengo una funcion para coger la ip que a lo mejor te sirve. Lo que hace es coger la ip por 3 metodos, y si ninguno de esos sirve, hace un die(). Cuando llegue a casa te lo paso a ver si te sirve. Otra cosa que se puede hacer es banear las ips de los tipicos proxys...
  #3 (permalink)  
Antiguo 27/11/2007, 09:42
Avatar de helyanne  
Fecha de Ingreso: marzo-2005
Ubicación: madrid
Mensajes: 119
Antigüedad: 19 años
Puntos: 0
Re: evitar surfeadores

Cita:
Iniciado por darkxer0x Ver Mensaje
Hola. Yo tengo una funcion para coger la ip que a lo mejor te sirve. Lo que hace es coger la ip por 3 metodos, y si ninguno de esos sirve, hace un die(). Cuando llegue a casa te lo paso a ver si te sirve. Otra cosa que se puede hacer es banear las ips de los tipicos proxys...
Yap, eso es una de las medidas q tengo, tengo como 90 ip detectadasy baneadas, pero entre q algunos las cambian, y q puede haber cientos más q no conzco... lo ideal seria un metodo q sirva para todas, no tirarme el resto de mis dias buscando ips...

los de los distintos tipos de ips esta guay, yo de momento los metodos q uso, por javascript no me detectan siempre todos los tipos de ips.
__________________
___________________

...::: ¡¡ SuperEli.com !! :::...
  #4 (permalink)  
Antiguo 27/11/2007, 10:03
 
Fecha de Ingreso: junio-2006
Mensajes: 270
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: evitar surfeadores

A ver, este es el que yo puse:
Código PHP:
function getIp(){
if( isset( 
$_SERVER ['HTTP_X_FORWARDED_FOR'] ) ){
$ip $_SERVER ['HTTP_X_FORWARDED_FOR'];
}elseif( isset( 
$_SERVER ['HTTP_VIA'] ) ){
$ip $_SERVER ['HTTP_VIA'];
}elseif( isset( 
$_SERVER ['REMOTE_ADDR'] ) ){
$ip $_SERVER ['REMOTE_ADDR'];
}else{
die();
}
return 
$ip;

Y se supone que cada una es:
$_SERVER['HTTP_X_FORWARDED_FOR'] contains the proxy behind the nat router
$_SERVER['REMOTE_ADDR'] is the isp proxy


Pero luego me encuentro este comentario:
Cita:
Never ever trust the values that comes from $_SERVER.

HTTP_X_FORWARDED, HTTP_X_FORWARDED_FOR, HTTP_FORWARDED_FOR, HTTP_FORWARDED, etc.. can be spoofed !

To get the ip of user, use only $_SERVER['REMOTE_ADDR'], otherwise the 'ip' of user can be easily changed by sending a HTTP_X_* header, so user can escape a ban or spoof a trusted ip.
Asi que no estoy muy seguro de ccomo evitar eso que tu pides.
Ademas, hay otros scripts mas enrevesados aun, como este:
Código PHP:
$realIP "";

if (isSet(
$_SERVER["HTTP_X_FORWARDED_FOR"]) && strlen($_SERVER["HTTP_X_FORWARDED_FOR"])) {
echo 
"HTTP_X_FORWARDED_FOR: " $_SERVER["HTTP_X_FORWARDED_FOR"] . "<br>";
$realIP $_SERVER["HTTP_X_FORWARDED_FOR"];
}

if (isSet(
$_SERVER["HTTP_CLIENT_IP"]) && strlen($_SERVER["HTTP_CLIENT_IP"])) {
echo 
"HTTP_CLIENT_IP: " $_SERVER["HTTP_CLIENT_IP"] . "<br>";
if (
$realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP $_SERVER["HTTP_CLIENT_IP"];
}

if (isSet(
$_SERVER["HTTP_X_COMING_FROM"]) && strlen($_SERVER["HTTP_X_COMING_FROM"])) {
echo 
"HTTP_X_COMING_FROM: " $_SERVER["HTTP_X_COMING_FROM"] . "<br>";
if (
$realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP $_SERVER["HTTP_X_COMING_FROM"];
}

if (isSet(
$_SERVER["HTTP_COMING_FROM"]) && strlen($_SERVER["HTTP_COMING_FROM"])) {
echo 
"HTTP_COMING_FROM: " $_SERVER["HTTP_COMING_FROM"] . "<br>";
if (
$realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP $_SERVER["HTTP_COMING_FROM"];
}

if (isSet(
$_SERVER["HTTP_VIA"]) && strlen($_SERVER["HTTP_VIA"])) {
echo 
"HTTP_VIA: " $_SERVER["HTTP_VIA"] . "<br>";
if (
$realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP $_SERVER["HTTP_VIA"];
}

echo 
"REMOTE_ADDR: " $_SERVER["REMOTE_ADDR"] . "<p>";
if (
$realIP == "" || !preg_match ("#[^0-9.]#",$realIP)) $realIP $_SERVER["REMOTE_ADDR"];

echo 
"REAL IP: $realIP"
Pero creo que si alguien quiere entrar desde un proxy, va a poder entrar (si podian acceder a paginas prohibidas en china a traves de proxys, me parece que van a poder acceder a las tuyas, porque lo que no inventen los chinos.... jejee)

P.D. Y ya como ultimo y mas sencillo, este que me he encontrado en php.net:
Código PHP:
<?php
    
if ($IP getenv('HTTP_CLIENT_IP')) {}
      elseif (
$IP getenv('HTTP_X_FORWARDED_FOR')) {}
      elseif (
$IP getenv('HTTP_X_FORWARDED')) {}
      elseif (
$IP getenv('HTTP_FORWARDED_FOR')) {}
      elseif (
$IP getenv('HTTP_FORWARDED')) {}
      else {
        
$IP $_SERVER['REMOTE_ADDR'];
    }
?>
  #5 (permalink)  
Antiguo 27/11/2007, 15:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 157
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: evitar surfeadores

Bueno, la gracia de estos navegadores anónimos, es que són anónimos. Y además si están configurados para ello, totalmente transparentes. Así que no hay forma de pillarlos, si no es manualmente.

Como mucho, puedes comprobar por sockets si tienen los puertos típicos abiertos... 8080, 3128...

Pero es como muy mala idea. Además el código que mencionas, manda a tomar viento a cualquier visitante que use un proxy normal y corriente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:34.