Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL - czy ktoś może sprawdzić, że się łączę z jego stroną ?
Forum PHP.pl > Forum > PHP
r47i3l
Witam.
Otóż łączę się ze stroną X (cURL) w celu wykorzystania skryptu na tej stronie przesłanie POST'em odpowiednich info, odebranie odpowiedzi z formularza i na tym koniec.
Czy właściciel tej strony może sprawdzić, że wykonuję taką operację na jego skrypcie za pomocą cURL, a nie bezpośrednio na stronie przy wizycie ?

(jeśli jest możliwe czy jest to trudne do zrobienia bo są to informacje na stronie bez żadnej wartości).

Dzięki z góry.
Crozin
Tego czy używasz cURLa czy sam budujesz całe żądanie HTTP nie da rady ustalić, ale że Ty (a dokładniej: Twój serwer) już bez problemu (po adresie IP).
r47i3l
aha, ale jedynie co dany właściciel serwera będzie widział to częste odwiedziny mojego IP na jego stronie tak ? można więc to wytłumaczyć w inny sposób niż skrypt cURL ? smile.gif
Crozin
Będzie wiedzieć tyle ile mu (nie)świadomie powiesz + to jakie masz IP. Nie da się stwierdzić przy pomocy czego żądania są wysyłane, bo protokół Internet (IP) takich informacji nie przewiduje, zresztą zawsze takie dane można by sfałszować. Z drugiej strony, jeżeli zobaczymy że dany adres IP należy do jakiegoś serwera, który pełni rolę typowego hostingu dosyć łatwo będzie można wywnioskować, że to skrypt PHP wysyła tę masę żądań.
Quadina
Można się niejako domyśleć, ale nie tylko po adresie IP. Nagłówki wysyłane przez przeglądarki są zupełnie inne niż te wysyłane przez cURLa, wystarczy się przypatrzeć na różnice i na pewno się szybko dojdzie. Jest na to znowu sposób taki, żeby cURLowi wysyłać odpowiednie, ale i tak zawsze znajdzie się szczegół różniący przeglądarki od cURLa. Między innymi w taki sposób można rozpoznać boty chodzące po stronach (nie mowie o googlebotach, które podają, że to one w sposób jawny) np. gier internetowych typu MMORPG. Kwestia tylko administratora, czy domyśli się, że coś jest nie tak i zacznie szukać. Jak zacznie szukać to [nie]stety zawsze znajdzie.
aart3k
Podaj jaki "szczegol" masz na mysli.

Za pomoca cURL zfabrykujesz dowolne aspekty protokolu HTTP, mozna idealnie symulowac dzialanie przegladarki. Inna sprawa ze przegladarka pobierze zaraz po pobraniu strony np. CSSy, obrazki etc - analiza logow serwera moze dac pewne prawdobodobienstwo, ze serwer zostal odpytany przez bota. Nie mniej jednak - zawsze i to mozna sfabrykowac tongue.gif

PS. Wybaczcie, alt mi wysiadl.
kiler129
Cytat(aart3k @ 17.12.2010, 18:59:10 ) *
Podaj jaki "szczegol" masz na mysli.


Oj wiele ich jest smile.gif
http://panopticlick.eff.org/

Przejrzyj szczególnie PDF z opisem technikaliów.
Quadina
Nie chodzi mi o to, że nie da się sfabrykować, ale przyglądając się w czasie na różne elementy dojdzie się do tego kto co zrobił. Np. nagłówek wysłany przez chroma:

Kod
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Referer:http://forum.php.pl/PHP_f1.html
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10


Jeżeli taki podasz funkcji cURL to oczywiście wszystko zostanie odpowiednio sfabrykowane i w pierwszej chwili nic się nie da odkryć. Jednak gdy taki kod umieścisz na stałe w kodzie, to już po miesiącu okaże się, że chrome wydało 5 różnych wersji, a ty korzystasz dalej ze starego nagłówka. A przecież chrome aktualizuje się w tle bez jakiegokolwiek pytania nas o zdanie, więc raczej ten nagłówek będzie się zmieniać w czasie dla każdego normalnego użytkownika. Pozostaje kwestia ładowania obrazków i css tak jak już wspomniałeś, co jest raczej jednoznaczne z korzystaniem z bota, bo nawet przeglądarki typu lynx, typowo tekstowe starają się odebrać CSSa ze strony + nagłówki obrazków, które są w stanie jakoś przetworzyć np. bmp (chociaż nie jestem pewien czy akurat lynx wspiera wciąż obsługę bmp).
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.