Pregunta

¿Es posible detectar si una solicitud entrante se realiza a través de un servidor proxy? Si una aplicación web "prohíbe" los usuarios a través de la dirección IP, podrían pasar por alto esto mediante el uso de un servidor proxy. Esa es sólo una de las razones para bloquear estas solicitudes. ¿Cómo se puede lograr esto?

¿Fue útil?

Solución

En mi humilde opinión no hay manera fiable al 100% para lograr esto, pero la presencia de cualquiera de las siguientes cabeceras es una fuerte indicación de que la solicitud haya sido transferida desde un servidor proxy:

via:
forwarded:
x-forwarded-for:
client-ip: 

También puede buscar la Proxy o Pxy en el nombre de dominio del cliente.

Otros consejos

Si un servidor proxy está configurado correctamente para evitar la detección de servidores proxy, usted no será capaz de decir.

La mayoría de los colectores de suministro servidores proxy como otros mencionar, pero los que no están presentes en los proxies destinados a ocultar completamente el usuario.

Usted tendrá que emplear métodos de detección de varios, tales como galletas, detección de cabecera de proxy, y tal vez la heurística IP para detectar este tipo de situaciones. Echa un vistazo a http://www.osix.net/modules/article/?id=765 por alguna información sobre esta situación. También considere el uso de una lista negra de proxy -. Que se publican por muchas organizaciones

Sin embargo, nada es 100% seguro. Puede emplear las tácticas anteriores para evitar situaciones más simples, pero al final del día es simplemente una serie de paquetes que forman una transacción TCP / IP y el protocolo TCP / IP no se desarrolló con las ideas de hoy en materia de seguridad, autenticación, etc. .

Tenga en cuenta que muchas empresas despliegan toda la compañía proxies, por diversas razones, y si simplemente bloquear proxies como regla general se limite necesariamente a su público, y que no siempre puede ser deseable. Sin embargo, estas referencias generalmente se anuncian con las cabeceras apropiadas -. Que pueden terminar bloqueando los usuarios legítimos, en lugar de usuarios que son buenos en esconderse

-Adán

Hice un poco de excavación en esto después de mi dominio quedó alojada en Google de AppSpot.com con bonitas anuncios de porno duro inyectado en ella (gracias Google).

Tomando una hoja de este idea .htaccess que estoy haciendo lo siguiente, que parece estar funcionando. He añadido una norma específica para AppSpot que inyecta un ServerVariable HTTP_X_APPENGINE_COUNTRY.

    Dim varys As New List(Of String)
    varys.Add("VIA")
    varys.Add("FORWARDED")
    varys.Add("USERAGENT_VIA")
    varys.Add("X_FORWARDED_FOR")
    varys.Add("PROXY_CONNECTION")
    varys.Add("XPROXY_CONNECTION")
    varys.Add("HTTP_PC_REMOTE_ADDR")
    varys.Add("HTTP_CLIENT_IP")
    varys.Add("HTTP_X_APPENGINE_COUNTRY")
    For Each vary As String In varys
        If Not String.IsNullOrEmpty(HttpContext.Current.Request.Headers(vary)) Then HttpContext.Current.Response.Redirect("http://www.your-real-domain.com")
    Next

Puede buscar estos encabezados en la solicitud de objetos y, en consecuencia decidir si la solicitud se realiza a través de un proxy / no

1) Vía 2) X-reenviado-For

Tenga en cuenta que esto no es un truco de tiro seguro 100%, depende de si estos servidores proxy optan por añadir por encima de los encabezados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top