2009-03-27 10 views
6

Czy można wykryć, czy żądanie przychodzące jest realizowane przez serwer proxy? Jeśli aplikacja internetowa "zabrania" użytkowników za pośrednictwem adresu IP, może ominąć to za pomocą serwera proxy. To tylko jeden z powodów blokowania tych żądań. Jak można to osiągnąć?Jak sprawdzić, czy Żądanie pochodzi z serwera proxy?

Odpowiedz

6

IMHO nie ma 100% niezawodny sposób, aby osiągnąć ten cel, ale obecność któregokolwiek z następujących nagłówków jest silne wskazanie, że wniosek został poprowadzony z serwera proxy:

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

Można też poszukaj proxy lub poksy w nazwie domeny klienta.

0

można szukać tych nagłówków w żądaniu obiektu i odpowiednio zdecydować, czy żądanie jest przez pełnomocnika/nie

1) Via 2) X-Przekazano-For

zauważyć, że nie jest to 100% pewności strzelonego triku, zależy od tego, czy te serwery proxy zdecydują się na dodanie powyższych nagłówków.

7

Jeśli serwer proxy jest skonfigurowany prawidłowo, aby uniknąć wykrycia serwerów proxy, nie będzie można powiedzieć.

Większość serwerów proxy podaje nagłówki, o czym inni wspominają, ale nie są one obecne w serwerach proxy służących do całkowitego ukrycia użytkownika.

Aby wykryć takie sytuacje, należy zastosować kilka metod wykrywania, takich jak pliki cookie, wykrywanie nagłówków serwerów proxy oraz heurystyki IP. Sprawdź numer http://www.osix.net/modules/article/?id=765, aby uzyskać informacje na temat tej sytuacji. Rozważ także użycie czarnej listy proxy - są one publikowane przez wiele organizacji.

Jednak nic nie jest w 100% pewne. Możesz zastosować powyższe taktyki, aby uniknąć najprostszych sytuacji, ale na koniec dnia to tylko seria pakietów tworzących transakcję TCP/IP, a protokół TCP/IP nie został opracowany przy dzisiejszych pomysłach dotyczących bezpieczeństwa, uwierzytelniania itp.

Należy pamiętać, że wiele korporacji wdraża szerokie proxy firmy z różnych powodów, a jeśli po prostu blokuje się serwer proxy, to z zasady ograniczasz liczbę odbiorców, co nie zawsze jest pożądane. Jednak te serwery proxy zwykle ogłaszają się za pomocą odpowiednich nagłówków - możesz ostatecznie zablokować wiarygodnych użytkowników, a nie użytkowników, którzy dobrze się ukrywają.

-Adam

1

Czy trochę kopanie w tej sprawie po moja domena ale odbyło się na Google AppSpot.com z ładnymi zapalonych reklamy porno wstrzyknięto do niego (dzięki Google).

Biorąc liść z tego htaccess idea Robię co następuje, co wydaje się działać. Dodałem konkretną regułę dla AppSpot, która wstrzykuje serwerową zmienną 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 
Powiązane problemy