xajax strip_tags remove quitar para funcion etiquetas ejemplo php proxy http-headers

php - strip_tags - determinar si el usuario está utilizando proxy



strip_tags() (1)

Después de buscar en Google para php detect http proxies me ocurrió lo siguiente:

http://forums.digitalpoint.com/showthread.php?t=58964

http://forums.digitalpoint.com/showthread.php?t=365467

http://www.roscripts.com/PHP_Proxy_Detector-75.html

... y muchos otros éxitos interesantes.

EDITAR:

AFAIK no hay manera de detectar proxies HTTP con absoluta certeza o de manera segura:

  • Los servicios de Anonymizer no agregan los encabezados adecuados a sus solicitudes; de hecho, eliminan algunos de ellos. Debe mantener una lista de los servicios de anonimizador más populares y sus bloques de direcciones IP y detectarlos de esa manera. Es posible que pueda utilizar algunas listas en línea, pero están lejos de estar completas, especialmente si considera que la mayoría de las grandes instituciones (ISP, empresas, universidades, etc.) proporcionan un servidor proxy para sus usuarios. Algunos incluso requieren que sus usuarios los utilicen.

  • Muchos proxies HTTP están configurados de manera que simplemente envían solicitudes sin alterar los encabezados.

  • Las instalaciones VPN tienen el mismo efecto que un proxy HTTP, es decir, permiten que las solicitudes HTTP se originen desde una IP diferente a la de la computadora donde se encuentra la brecha web, sin ser una.

  • Cualquier servidor SSH puede ser utilizado como un proxy SOCKS por sus usuarios, lo que no es realmente detectable ya que no es realmente un proxy HTTP.

  • Hay muchos proxies HTTP legítimos que no son accesibles públicamente. Por ejemplo, hay productos de proxy HTTP que se instalan en una red doméstica y proporcionan control de los padres y contenido cuestionable (pornografía, sitios de phishing, etc.) para toda la red.

¿Qué tipo de abuso está viendo, donde detectar proxies HTTP podría ser útil?

Hola, estoy creando un juego y me gustaría poder saber si un usuario está usando un proxy. Si lo son, básicamente pone una bandera en su cuenta. Puedo hacer que haga la bandera y todo, pero no estoy exactamente seguro de cómo saber si un usuario está usando un proxy. He visto que puedes usar encabezados, pero no estoy exactamente seguro de qué buscar y cómo verificarías si un usuario "tiene" un encabezado (además del http_referrer normal y no).

Cualquier ayuda es muy apreciada.

Editar

if ( $_SERVER[''HTTP_X_FORWARDED_FOR''] || $_SERVER[''HTTP_X_FORWARDED''] || $_SERVER[''HTTP_FORWARDED_FOR''] || $_SERVER[''HTTP_CLIENT_IP''] || $_SERVER[''HTTP_VIA''] || in_array($_SERVER[''REMOTE_PORT''], array(8080,80,6588,8000,3128,553,554)) || @fsockopen($_SERVER[''REMOTE_ADDR''], 80, $errno, $errstr, 30)) { exit(''Proxy detected''); }

Entonces, este código funciona principalmente, cuando el usuario es un proxy, rápidamente sale. Pero cuando no lo son, tarda una eternidad en cargarse (unos 10 segundos). ¿Hay alguna forma de usar este script pero que funcione más rápido?

Editar 2

Cambió el tiempo de espera en fsockopen de 30 a 1 y funciona mucho más rápido y sigue funcionando. Gracias a todos por las sugerencias :)