![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 11.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jestem w trakcie próby stworzenia weryfikatora serwerów proxy, nie opierającego się na bazie znanych adresów ip serwerów proxy. Jak wiadomo należy bacznie prześledzić zmienne środowiskowe, które powinny nas doprowadzić do najbardziej prawdopodobnego wyniku. Wzoruję się na takich stronach: http://www.jockersoft.com/english/ipaddress.php oraz http://www.proxyserverprivacy.com/adv-free...-detector.shtml Napotykam takie oto problemy: Na tych stronach odczytują: Connection: keep-alive Keep-Alive: 300 Pierwsza z informacji teoretycznie powinna się znaleźć w zmiennej 'HTTP_CONNECTION', lecz w moim skrypcie nie istnieje taka zmienna. Czy widoczność tej zmiennej zależy od serwera na którym stoi skrypt?? Także po wejściu na te strony mam: Proxy HTTP_X_FORWARDED Variable: (none) Gdzie w moim skrypcie te zmienne mają pewne wartości(dwie pierwsze)Proxy HTTP_VIA Variable: (none) Proxy HTTP_PROXY_CONNECTION: (none) print_r( $_SERVER ); Wynik działania powyższego kodu na moim serwerze Array ( [PATH] => /usr/local/bin:/usr/bin:/bin [UNIQUE_ID] => SggzBldi3pgAAHLJkHsAAAA0 [REAL_HOST] => 193.239.80.21 [HTTP_HOST] => engineer.ovh.org [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [HTTP_ACCEPT_LANGUAGE] => pl,en-us;q=0.7,en;q=0.3 [HTTP_ACCEPT_ENCODING] => gzip,deflate [HTTP_ACCEPT_CHARSET] => ISO-8859-2,utf-8;q=0.7,*;q=0.7 [HTTP_COOKIE] => SESS47f8c6f823598c9dba1c59fb62aeb1bb=f71f56b5e2896bb7eec0132c8f3457ef [HTTP_CACHE_CONTROL] => max-age=0 [HTTP_MAX_FORWARDS] => 10 [HTTP_VIA] => 1.1 127.0.0.1 [HTTP_X_FORWARDED_FOR] => 193.239.80.21 [HTTP_X_FORWARDED_HOST] => engineer.ovh.org [HTTP_X_FORWARDED_SERVER] => 127.0.0.1 [SERVER_SIGNATURE] => [SERVER_SOFTWARE] => Apache [SERVER_NAME] => engineer.ovh.org [SERVER_ADDR] => 87.98.222.152 [SERVER_PORT] => 80 [REMOTE_ADDR] => 193.239.80.21 [DOCUMENT_ROOT] => /home/e/n/g/engineer/www [SERVER_ADMIN] => postmaster@engineer.ovh.org [SCRIPT_FILENAME] => /home/e/n/g/engineer/www/index.php [REMOTE_PORT] => 55217 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => / [SCRIPT_NAME] => /index.php [UID] => 105826 [PHP_SELF] => /index.php [REQUEST_TIME] => 1242051334 [argv] => Array ( [0] => index.php ) [argc] => 1 ) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
No właśnie, ty o pierniku a ja...
Sprawdzanie czy user korzysta z proxy, teraz mamy jasność :P Połącznie wygląda tak: przeglądarka usera -> serwer proxy -> Twój skrypt Nagłowki http wysyła do Twojego skryptu wyłącznie serwer proxy. Może on oszukiwać na przerozmaite sposoby łącznie z emitowaniem nagłówków identycznych jak te odebrane od przeglądarki usera, więc pewna część użytkowników przejdzie bez problemu przez takie zabezpieczenie przechodzić. Jeśli jednak nie chcesz łączyć się z zwenętrznymi serwerami w celu weryfikacji, to jest to jedyne sensowne rozwiązanie. Jak ja bym to zrobił: 1. Skan IP w poszukiwaniu otwartego proxy Minusem tego rozwiązania jest czas skanowania (nawet kilka minut), należy wobec tego przy pierwszy odwiedzinach wpuścić usera, w tle rozpocząć skanowanie IP i jeśli okaże się że to proxy, zablokować kolejne wywołania strony przez takiego użytkownika. To chyba najlepsze rozwiązanie 99,9% skuteczności. 2. Google Jeśli pod wybrabym IP jest publiczne proxy, google wyplują slowo "proxy" w 3000 ekzemplarzach, ale może też zdarzyć się ze wypluje slow proxy jeśli tam proxy wcale nie ma i tym sposobem zablokujesz normalnego usera. 3. Whois: Nie wiem gdzie we whois jest napisane że to proxy, jeśli już to nie za często, 3% skutecznosci :P 4. Jeszcze raz nagłowki Jeśli uda Ci się zbudować skrypt rozpoznający nagłówki wysyłane przez 99% współczesnych przeglądarek internetowych (różne wersje), to takie rozwiązanie też będzie OK, 90% skuteczności. Wszystko zależy od tego, jakie masz wymagania wobec skryptu, metod jak widzisz jest conajmniej kilka. Coś do rozpoznawania przeglądraki od CodeIgnitera:
Ten post edytował wNogachSpisz 12.05.2009, 08:58:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 06:02 |