Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]proxy i zmienne serwera
Forum PHP.pl > Forum > PHP
312
Witam.
Ustawiłem sobie sposób łączenia na serwer proxy i mam skrypt, który wypisuje nagłówki przesyłane przez serwer:

  1. <?php
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. echo "REMOTE_ADDR: ".$ip ."<br>";
  4. echo "HTTP_ACCEPT_LANGUAGE: ".$_SERVER['HTTP_ACCEPT_LANGUAGE'] ."<br>";
  5. echo "HTTP_USER_AGENT: ".$_SERVER['HTTP_USER_AGENT'] ."<br>";
  6. echo "HTTP_HOST: ".$_SERVER['HTTP_HOST'] ."<br>";
  7. echo "HTTP_VIA: ".$_SERVER['HTTP_VIA'] ."<br>";
  8. echo "HTTP_X_FORWARDED_FOR: ".$_SERVER['HTTP_X_FORWARDED_FOR'] ."<br>";
  9. echo "HTTP_CLIENT_IP: ".$_SERVER['HTTP_CLIENT_IP'] ."<br>";
  10. echo "HTTP_X_FORWARDED: ".$_SERVER['HTTP_X_FORWARDED'] ."<br>";
  11. echo "HTTP_ACCEPT_ENCODING: ".$_SERVER['HTTP_ACCEPT_ENCODING'] ."<br>";
  12. echo "HTTP_CONNECTION: ".$_SERVER['HTTP_CONNECTION'] ."<br>";
  13. echo "HTTP_CASHE_CONTROL: ".$_SERVER['HTTP_CACHE_CONTROL'] ."<br>";
  14. echo "SERVER_PROTOCOL: ".$_SERVER['SERVER_PROTOCOL'] ."<br> ";
  15. ?>

i teraz pytanie: podobno to, iż używam proxy da się poznać po zmiennych HTTP_VIA, HTTP_X_FORWARDED_FOR,HTTP_CLIENT_IP, jednak odpalając ten skrypt na serwerze zewnętrznym te pola są puste, bo bramka proxy jest typu high anonymus. Jednak serwer rozpoznaje, iż łączę się z proxy, czy może to być wina zmiennej HTTP_HOST, która przyjmuje wartość: proxy.net.pl, można w razie czego ją zmienić jakoś?

hm dziwne teraz pokazuje mi coś takiego
Cytat
REMOTE_ADDR: 169.229.50.7
HTTP_ACCEPT_LANGUAGE: pl,en-us;q=0.7,en;q=0.3
HTTP_USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
HTTP_HOST: adres.cba.pl
HTTP_VIA:
HTTP_X_FORWARDED_FOR:
HTTP_CLIENT_IP:
HTTP_X_FORWARDED:
HTTP_ACCEPT_ENCODING: gzip,deflate
HTTP_CONNECTION: keep-alive
HTTP_CASHE_CONTROL: max-age=0
SERVER_PROTOCOL: HTTP/1.0


to jakim sposobem serwer wie, iż łącze się przez proxy?
przy sprawdzaniu korzystałem z tego:
http://proxy.net.pl/proxychecker.html
Kocurro
daj zrzut tego:

  1. <?php
  2. echo( '<pre>' );
  3. print_r( $_SERVER );
  4. ?>


Poza tym serwery proxy często rozpoznają po ipkach - szybko się odkrywa pod jakimi są proxy i się odpowiednio je oznacza w bazach swoich smile.gif

pozdr.
Łukasz
312
to co mówisz jest możliwe, jednak wątpię by akurat na tej stronie tak to działało. poza tym to cholernie nie efektywne rozwiązanie. czy port z jakim się łączę z serwerem proxy to ten sam z jakim wychodzi zapytanie z niego do strony głównej? jeśli tak to można posprawdzać faktycznie po samym porcie.
Kocurro
Są firmy, które oferują takie bazy danych więc to jest wystarczająco efektywne - mój serwer dziennie jest około dziesięć razy skanowany by sprawdzić czy na nim nie stoi proxy.

Pozdrawiam,
Łukasz
312
ok pewni i są, ale w założeniu high anonymous ma tak się łączyć z serwerem by nikt nie wiedział, że to proxy, czyści moje ip z info , swoje także i wstawia tam jakieś losowe. więc baza tutaj nie powinna pomóc, co do tego skryptu który jest na tej stronie podejrzewam, że sprawdzają po prostu po rodzaju informacji lub jego braku i przypisują w/g jakiegos prawdopodobieństwa.. no ale pewny nie jestem
Kocurro
Ale nie rozumiesz - jakimś cudem Ty się połączyłeś z tym proxy prawda ?
Skądś miałeś o nim informację prawda?

A skąd ją miałeś ?

I skąd pewność, że inni takich informacji nie posiadają ?

A może Ci inni co jednak je posiadają to wklepują do tej bazy informacje ?

Aha - dalej nie wkleiłeś tego o co Cię prosiłem, więc jakie są nagłówki Ci nie powiem biggrin.gif

pozdr.
Łukasz

ps: ja bym temu proxowi nie ufał
312
nagłówki:
  1. <?php
  2. REMOTE_ADDR: 192.33.90.69
  3. HTTP_ACCEPT_LANGUAGE: pl,en-us;q=0.7,en;q=0.3
  4. HTTP_USER_AGENT: Mozilla/5.(Windows; U; Windows NT 5.1; pl; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
  5. HTTP_HOST: www.host.pl
  6. HTTP_VIA:
  7. HTTP_X_FORWARDED_FOR:
  8. HTTP_CLIENT_IP:
  9. HTTP_X_FORWARDED:
  10. HTTP_ACCEPT_ENCODING: gzip,deflate
  11. HTTP_CONNECTION: keep-alive
  12. HTTP_CASHE_CONTROL:
  13. SERVER_PROTOCOL: HTTP/1.0
  14. ?>

pewności nie mam, że korzystają z bazy, ale moje własne prywatne proxy jakoś wykryło, więc podejrzewam, że nie koniecznie na tym się opierają. ale mniejsza o to, interesuje mnie jak to obejść tylko, żeby nie być widzianym.
Kocurro
Hmm ... tutaj :

http://whois.domaintools.com/host.pl

podają, że adres hosta to: 212.244.197.1
a Ty się łączysz z: 192.33.90.69

---

To stwierdzenie powyżej jest absolutnie błędne - pomyliłem się i to jeszcze jak.

---

to jeden punkt, który może pozwolić na wykrycie. Kolejny to puste zmienne HTTP_VIA, HTTP_X_FORWARDED_FOR, HTTP_CLIENT_IP, HTTP_X_FORWARDED. A na końcu obstawiałbym to: SERVER_PROTOCOL: HTTP/1.0

pozdr.
Łukasz
312
host.pl wpisałem sam, była tam nazwa mojego serwera, którego nazwy nie chcę udostępniać, za to właśnie odpowiada ta zmienna, po tym nie dojdą.
IP z którego się łącze jest generowane w jakiś sposób przez serwer proxy, adres który podałeś jako 212.... to w zamierzeniu adres serwera z którym się łącze by obejrzeć stronę... kiepsko u Ciebie z wiedzą odnośnie zmiennych.
druga sprawa puste zmienne HTTP_VIA, HTTP_X_FORWARDED_FOR, HTTP_CLIENT_IP, HTTP_X_FORWARDED. Owszem to może wskazywać na proxy, ale nie musi, łącząc się normalnie bez proxy też mam je puste, więc za pewne źródło bym tego nie obierał.

SERVER_PROTOCOL: HTTP/1.0?? przecież to sposób łączenia, nic to nie ma do rzeczy, bo chcąc otworzyć stronę nawet normalnie muszę użyć tego protokołu, więc to nie to.
Kocurro
Aj mój błąd z tymi IPkami - masz rację smile.gif Na usprawiedliwienie mam to, że siedzę teraz w strasznie nudnej pracy.

Ciekawe, że masz te puste zmienne - u mnie ich nie ustawia. Protokół teraz to raczej HTTP 1.1

Chociaż obstawiałbym raczej na jakąś bazę o proxach bądź też słaby proxy server.

pozdr.
Łukasz
312
ok wybroniłeś się, zwracam honor;]
nudna praca to straszna rzecz. słaby serwer proxy możliwe, ale jeżeli ustawiają ustawienia elite to to nie powinno być widoczne. sprawdzę jeszcze z tymi zmiennymi na innym kompie na innym łączu bo może to też jego sprawka. jeszcze pomyślę
Kocurro
Wiesz ciężko powiedzieć - na pewno jest wiele technik, które pozwalają takie rzeczy sprawdzić. Zwłaszcza, że takie sprawdzania podchodzą pod zabezpieczenie przed wyłudzeniami, oszustwami itp. Więc raczej nie zdradzą jak to robią. A my możemy tylko szukać własnych rozwiązań.

pozdr.
Łukasz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.