Question

Est-il possible de détecter si une requête entrante est effectuée par l'intermédiaire d'un serveur proxy? Si une application Web « interdit » les utilisateurs via l'adresse IP, ils pourraient contourner cela en utilisant un serveur proxy. C'est une des raisons pour bloquer ces demandes. Comment cela peut-il être atteint?

Était-ce utile?

La solution

à mon humble avis, il n'y a aucun moyen fiable à 100% pour y parvenir, mais la présence de l'une des têtes suivantes est une forte indication que la demande a été acheminée à partir d'un serveur proxy:

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

Vous pouvez aussi regarder pour le proxy ou pxy au nom de domaine du client.

Autres conseils

Si un serveur proxy est configuré correctement pour éviter la détection de serveurs proxy, vous ne serez pas en mesure de dire.

La plupart des serveurs proxy têtes d'alimentation comme d'autres mentionnent, mais ceux qui ne sont pas présents sur les procurations destinées à cacher complètement l'utilisateur.

Vous devrez employer plusieurs méthodes de détection, tels que les cookies, la détection d'en-tête proxy, et peut-être heuristiques IP pour détecter de telles situations. Consultez http://www.osix.net/modules/article/?id=765 quelques informations sur cette situation. Pensez également à utiliser une liste noire de proxy -. ils sont publiés par de nombreuses organisations

Cependant, rien est certain à 100%. Vous pouvez employer la tactique ci-dessus pour éviter les situations les plus simples, mais à la fin de la journée, il est simplement une série de paquets formant une transaction TCP / IP et le protocole TCP / IP n'a pas été développé avec les idées d'aujourd'hui sur la sécurité, l'authentification, etc. .

Gardez à l'esprit que de nombreuses entreprises déploient toute l'entreprise proxies pour diverses raisons, et si vous bloquez simplement procurations en règle générale, vous limitez nécessairement votre public, et cela ne peut pas toujours souhaitable. Toutefois, ces procurations s'annoncent généralement avec les en-têtes appropriés -. Vous pouvez finir par bloquer les utilisateurs légitimes, plutôt que ceux qui sont bons à se cacher

-Adam

Est-ce un peu de creuser sur ce après mon domaine obtenu hébergé sur Google AppSpot.com avec de belles annonces porno hard injectées dans ce (merci Google).

Prendre une feuille de cette idée htaccess que je fais ce qui suit, ce qui semble fonctionner. J'ai ajouté une règle spécifique pour AppSpot qui injecte un ServerVariable de 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

Vous pouvez rechercher ces en-têtes dans la demande objet et, par conséquent décider si la demande se fait par un proxy / pas

1) Via 2) X-Forwarded-For

noter que ce n'est pas un truc de tir que 100%, dépend si ces serveurs proxy choisissent d'ajouter au-dessus des en-têtes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top