php - por - ip de proxy
Detectando si un usuario está detrás de un proxy (4)
Al buscar los siguientes campos de encabezado, debe usar algunos proxys.
VIA
FORWARDED
USERAGENT_VIA
X_FORWARDED_FOR
PROXY_CONNECTION
XPROXY_CONNECTION
HTTP_PC_REMOTE_ADDR
HTTP_CLIENT_IP
En cuanto a bloquear TOR, es mejor bloquear los nodos de salida TOR con iptables.
Y si realmente debe estar seguro de que puede probar algunas cosas "semi-maliciosas" como la incrustación de flash o java en su página que le devuelve la IP del cliente real. Pero eso tiene un alcance limitado, ya que puede obtener la dirección IP local si está en una LAN, por ejemplo, obtiene 192.168.1.x
Estoy intentando descubrir cómo podría detectar si las personas que inician sesión en mi sitio están detrás de un proxy o no. He leído que puede detectar la dirección IP real de una persona a través de objetos incrustables (Flash y Java). Sin embargo, no he podido encontrar ningún ejemplo o fuente para esto.
Estoy usando PHP y he leído que buscar $_SERVER[''HTTP_X_FORWARDED_FOR''], $_SERVER[''HTTP_CLIENT_IP'']
, etc. detectaría la mayoría de los proxies, pero hasta ahora no he podido probar con TOR ( quizás TOR no los marque, pero he leído que los proxies anónimos aún muestran HTTP_X_FORWARDED
). Me gustaría intentar hacerlo con un servlet Java, si es posible. ¿Podría alguien señalarme en la dirección correcta (preferiblemente con ejemplos?). Vi un código en ha.ckers.org pero solo mostraban el lado del cliente y no el del servidor.
Ni Java Applets ni Flash se supone que filtran la IP del cliente. Sé que las versiones anteriores de Flash tenían una falla de seguridad que lo hacía posible. Lo más probable es que esté remendado por ahora.
Nunca utilicé TOR pero por lo que leo parece estar implementado como una especie de VPN y, por lo tanto, el navegador no lo tendrá en cuenta.
¿Por qué necesita saber si el usuario está detrás de un proxy?
Si se trata de una opción, puede intentar usar https. La IP del usuario debería ser visible para usted. Sin embargo, no conozco a los usuarios de la oficina que están detrás de los proxys SSL.
TOR no proporciona ningún encabezado de servidor como X_FORWARDED_FOR, por lo que su mejor opción es utilizar una lista de todos los nodos de salida conocidos. Se puede encontrar una lista en https://torstat.xenobite.eu/ .
Para otros proxies, puede ver los encabezados del servidor. Los posibles encabezados de servidor de interés incluyen:
HTTP_VIA
HTTP_X_FORWARDED_FOR
HTTP_FORWARDED_FOR
HTTP_X_FORWARDED
HTTP_FORWARDED
HTTP_CLIENT_IP
HTTP_FORWARDED_FOR_IP
VIA
X_FORWARDED_FOR
FORWARDED_FOR
X_FORWARDED FORWARDED
CLIENT_IP
FORWARDED_FOR_IP
HTTP_PROXY_CONNECTION
En PHP, puede obtener el valor de estos campos en $_SERVER[] superglobal
.