Frage

Ist es möglich, zu erkennen, ob eine eingehende Anforderung über einen Proxy-Server hergestellt wird? Wenn eine Web-Anwendung „verbietet“ Benutzer über die IP-Adresse, könnten sie dies umgehen, indem Sie einen Proxy-Server verwenden. Das ist nur ein Grund, diese Anfragen zu blockieren. Wie kann dies erreicht werden?

War es hilfreich?

Lösung

IMHO gibt es keinen 100% zuverlässig Weg, dies zu erreichen, aber die Anwesenheit von einem des folgenden Header ist ein starker Hinweis darauf, dass die Anforderung von einem Proxy-Server weitergeleitet wurde:

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

Sie auch für das Proxy aussehen könnten oder pxy in den Client-Domänennamen ein.

Andere Tipps

Wenn ein Proxy-Server-Setup ordnungsgemäß die Erkennung von Proxy-Servern zu vermeiden, Sie werden in der Lage zu sagen, nicht.

Die meist Proxy-Server Versorgung Header wie andere erwähnen, aber das ist nicht vorhanden auf Proxies sollten den Anwender vollständig verbergen.

Sie müssen mehrere Nachweisverfahren eingesetzt werden, wie zB Cookies, Proxy-Header-Erkennung, und vielleicht Heuristik IP solche Situationen zu erkennen. Schauen Sie sich http://www.osix.net/modules/article/?id=765 für einige Informationen über diese Situation. Auch eine Proxy-schwarze Liste prüfen, mit -. Sie werden von vielen Organisationen veröffentlicht

Doch nichts ist 100% sicher. Sie können die oben genannten Taktiken einfachstene Situationen zu vermeiden, aber am Ende des Tages ist es nur eine Reihe von Paketen über eine TCP / IP-Transaktion bilden, und das TCP / IP-Protokoll wurde nicht mit dem heutigen Vorstellungen über Sicherheit, Authentifizierung, usw. entwickelt .

Beachten Sie, dass viele Unternehmen unternehmensweiten Proxies aus verschiedenen Gründen einsetzen, und wenn Sie einfach Proxies als allgemeine Regel blockieren notwendigerweise Sie Ihr Publikum begrenzen, und das kann nicht immer wünschenswert. Doch in der Regel diese Proxies melden sich mit den entsprechenden Header -. Sie können bis blockieren legitime Benutzer beenden, anstatt Benutzer, die sich versteckt sich gut

-Adam

Haben ein bisschen auf diese graben nach meiner Domain wurde auf Google gehosteten up AppSpot.com mit schönen Hardcore-Porno-Anzeigen in sie injiziert (dank Google).

ein Blatt von diesem htaccess Idee ich mache die folgende, die zu funktionieren scheint. Ich habe eine spezielle Regel für AppSpot, die eine HTTP_X_APPENGINE_COUNTRY ServerVariable einspritzt.

    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

Sie können in dem Request-Objekt für diese Header betrachten und entsprechend entscheiden, ob Anfrage über einen Proxy ist / nicht

1) Via 2) X-Forwarded-For

beachten Sie, dass dies keine 100% sicher Trick Schuss ist, hängt davon ab, ob diese Proxy-Server wählen, über Header hinzuzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top