Proxy / VPN Control de calidad / detección

1

¿Hay alguna forma de crear un script que detecte o califique proxies como el software de detección de proxy de Maxmind?

Ya he intentado usar este código, pero no detecta todos los proxies, de hecho, detecta una cantidad muy baja de proxies, mientras que Maxmind puede detectar mucho más.

 if(
        !gethostbyaddr($_SERVER['REMOTE_ADDR'])
        || gethostbyaddr($_SERVER['REMOTE_ADDR']) == "."
        || !$_SERVER['HTTP_ACCEPT_ENCODING']
        || $_SERVER['HTTP_X_FORWARDED_FOR']
        || $_SERVER['HTTP_X_FORWARDED']
        || $_SERVER['HTTP_FORWARDED_FOR']
        || $_SERVER['HTTP_VIA']
        || $_SERVER['HTTP_FORWARDED']
        || $_SERVER['HTTP_CLIENT_IP']
        || $_SERVER['HTTP_FORWARDED_FOR_IP']
        || $_SERVER['VIA']
        || $_SERVER['X_FORWARDED_FOR']
        || $_SERVER['FORWARDED_FOR']
        || $_SERVER['X_FORWARDED FORWARDED']
        || $_SERVER['CLIENT_IP']
        || $_SERVER['FORWARDED_FOR_IP']
        || $_SERVER['HTTP_PROXY_CONNECTION']
        || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
        || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 0)
        || !$_SERVER['HTTP_CONNECTION']
    )
    {
        echo 'proxy';
    }
    else
    {
        echo 'no proxy';
    }

¿Alguna solución?

    
pregunta user1406071 16.03.2013 - 23:00
fuente

2 respuestas

3

No hay una forma segura de detectar el uso de proxy / vpn. Aparte de lo que has hecho (que no atrapará a muchos usuarios), la mejor opción será una lista negra de IP (que es muy probable que Maxmind detecte proxies).

Aquí hay algunos sitios que ofrecen listas negras de IP (no tengo experiencia con ninguno de ellos):

Hay otros trucos que puedes hacer para intentar detectar proxies web (como google translate, etc.), que a veces agregan encabezados adicionales. El problema es que tendrías que agregar casos especiales para todos los que lo hacen (y la mayoría no lo hacen).

    
respondido por el GBC 16.03.2013 - 23:20
fuente
0

Sé que esta publicación es antigua solo para alguien que encuentre esta publicación en google

Compruebe acerca de dnsbl que muchos servidores son de uso gratuito

Uso pocos servidores dnsbl y muchos vpn proxy y tor están bloqueados en mi sitio web Recomiendo mantener durante un tiempo específico en una base de datos el usuario ip para que cuando continúe visitando su sitio web pueda cargar más rápido. El mío se tomó entre 5 y 10 segundos antes de hacerlo, ahora con la base de datos cada usuario carga más rápido después de la primera carga

1- verifica en tu base de datos si encuentras la ip. (está dentro, vaya al paso 2, no vaya al paso 4)

2- si está dentro, verifique la fecha agregada si superó su límite de tiempo, elimine la ip y vuelva a enviar una solicitud (si está en su límite de tiempo, vaya al paso 3, vaya a pasar el paso 4)

3- verifique en la base de datos si la ip está bloqueada (sí, detenga el script allí, no cargue la página).

4- ip obsoleto o no dentro de la base de datos envía una solicitud al servidor dnsbl.

5- compruebe su respuesta y agregue la ip en la base de datos con la hora actual y si está prohibida o no

6- carga tu página como el paso 3

    
respondido por el lordofkill 03.04.2015 - 09:38
fuente

Lea otras preguntas en las etiquetas