Zmiana identyfikatora przeglądarki
Prawdopodobnie niejednokrotnie spotkałeś się z sytuacją, w której — by uzyskać dostęp do ukrytych informacji — musiałeś się zarejestrować na stronie. Rejestrację możesz w wielu przypadkach pominąć — wystarczy, że zmienisz tożsamość przeglądarki na robota wyszukiwarki. Większość witryn (np. http://exsite.pl) udostępnia „pająkom” dane niewidoczne dla niezalogowanego usera. Wystarczy więc stać się Googlebotem...
Każda przeglądarka posiada swój własny identyfikator (określany także jako User Agent String) podawany w nagłówku HTTP User-Agent podczas komunikacji z serwerem. Nagłówek ten nie jest obowiązkowy, lecz przesyłany przez prawie wszystkie nowoczesne przeglądarki. Jest on pomocny przy tworzeniu statystyk stron WWW, niekiedy także informuje serwer, którą wersję strony przesłać klientowi (wynika to z różnic w silnikach renderujących przeglądarek, tak więc strona może wyglądać w każdej przeglądarce nieco inaczej — rozróżnianie ma na celu wyeliminowanie tego problemu). Mechanizm ten pochodzi jeszcze z czasów, kiedy na rynku niepodzielnie panowały Internet Explorer i bardziej rozwinięty technologicznie Netscape. Wielu webmasterów tworzyło wtedy strony internetowe w dwóch wersjach: dla Netscape'a i uboższą dla IE. Gigant z Redmond zmienił wtedy domyślny identyfikator Internet Explorera tak, by serwer uznawał IE za Netscape'a.
Budowę typowego identyfikatora można opisać schematem:
"Nazwa_kodowa_przeglądarki (wersja_systemu_operacyjnego_i_jego_wersja_językowa) silnik_renderujący wersja_przeglądarki ewentualne_dodatki"
Dla Mozilli Firefox 3.6.6 z silnikiem Gecko zainstalowanej w polskim systemie Windows Vista wygląda on następująco:
"Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6"
A dla Opery 10.60 z silnikiem renderującym Presto na polskim Windows XP:
"Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.6.30 Version/10.60"
Internet Explorer przedstawia się natomiast jako... Mozilla (dawna nazwa kodowa Netscape'a, przybrana potem przez Firefoxa):
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; C81C4D4B-5490-D756-F447-904CD2456F86; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)"
Powyżej przedstawiony został przykład identyfikatora z podaną listą dodatków zainstalowanych w IE.
"Mozilla/5.0 (Macintosh; U; PPC; ja-JP; rv:1.0.1) Gecko/20020823 Netscape/7.0"
...a to ID Netscape 7.0 uruchomionego na japońskim Macintoshu.
Roboty wyszukiwarek wykorzystują poniższe ID:
"Googlebot/2.1 (+http://www.googlebot.com/bot.html)" - Googlebot, robot wyszukiwarki Google.
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" - Slurp, pająk Yahoo!
Obszerna lista identyfikatorów jest dostępna TUTAJ oraz TUTAJ. Swój własny ID możesz sprawić pod adresem http://whatsmyuseragent.com/.
System, przeglądarkę i kilka innych informacji można łatwo podejrzeć między innymi przy pomocy JavaScript (window.navigator.userAgent), PHP ($_SERVER['HTTP_USER_AGENT']) i ASP (Request.UserAgent).
Modyfikacja identyfikatora
Teraz zajmiemy się zmianą identyfikatora przeglądarki tak, by serwer uznawał nas za Googlebota.
Mozilla Firefox
W pasek adresu wpisz about:config. Poprzez wyszukiwanie „Filtr:” znajdź general.useragent.override (więcej informacji nt. about:config znajdziesz TUTAJ). Jeśli taka wartość nie istnieje, kliknij prawym przyciskiem myszki na puste pole, wybierz Dodaj ustawienie typu —> Łańcuch (String). W kolejnych okienkach podaj nazwę ustawienia (general.useragent.override) i jego wartość (jeśli chcemy, by nasza przeglądarka była uznawana z Googlebota powinniśmy wpisać Googlebot/2.1 (+http://www.googlebot.com/bot.html)). Następnie zatwierdzamy wybór. Od tej chwili będziesz identyfikowany jako Googlebot.
W ten sposób będziesz widoczny w logach serwera, które powstają przy odwiedzinach strony, czyli pobieraniu dokumentu z owego serwera:
83.7.142.223 - - [08/Jul/2010:11:57:45 +0200] "GET / HTTP/1.1" 304 - "-" "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"
Zmiany identyfikatora można dokonać także poprzez dodatek User Agent Switcher. Rozszerzenie ma własną listę ID przeglądarek, którą można uzupełniać.
Opera
Starsze wersje Opery umożliwiały prostą zmianę User Agent String w sekcji Special w opera:config. Obecnie (wersja 10.60) można to uczynić poprzez dekompilację pliku opera.dll umieszczonego w katalogu przeglądarki lub w preferencjach witryny. Pierwszej metody nie będę tutaj opisywał, gdyż jest ona czasochłonna i dosyć trudna, zajmiemy się zatem drugą opcją.
Każde ustawienie jest przypisane do określonej witryny. W celu utworzenia nowego parametru należy wejść na wybraną stronę, kliknąć na jej powierzchnię prawym przyciskiem myszy i z menu wybrać Preferencje dla witryny... —> Sieć —> Identyfikacja przeglądarki. Dostępnych jest pięć opcji (w nawiasie podałem wykorzystywany wtedy identyfikator — przeglądarka Opera 10.60):
- Przedstawiaj się jako Opera ("Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.6.30 Version/10.60"),
- Przedstawiaj się jako Firefox ("Mozilla/5.0 (Windows NT 6.0; U; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 Opera 10.60"),
- Przedstawiaj się jako Internet Explorer ("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; pl) Opera 10.60"),
- Maskuj się jako Firefox ("Mozilla/5.0 (Windows NT 6.0; U; pl; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6"),
- Maskuj się jako Internet Explorer ("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; pl)").
Internet Explorer
Uruchamiamy edytor rejestru (uruchom: regedit), w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent (jeśli klucz nie istnieje należy go utworzyć). W tej lokalizacji powinna znajdować się wartość (Domyślna) —, jej typ to REG_SZ. Kliknij na nią prawym przyciskiem myszy, wybierz Modyfikuj... i jako "Dane wartości" podaj wybrany identyfikator, np. Googlebot/2.1 (+http://www.googlebot.com/bot.html).
Zmiana identyfikatora w rejestrze jest globalna, dotyczy wszystkich zainstalowanych wersji IE, włącznie z emulatorami, np. IETester.
Microsoft udostępnił także program User Agent String Utility przeznaczony dla IE7, który informuje serwer, że strona jest przeglądana z IE6, gdy w rzeczywistości wersja Internet Explorera wykorzystywanego przez użytkownika jest o jeden numer wyższa.
Safari
Kliknij na symbol koła zębatego, kliknij "Pokaż pasek menu", następnie jeszcze raz wciśnij kółko, potem Preferencje —> Zaawansowane i zaznacz "Pokazuj menu Programowanie w pasku menu". Wejdź w menu Programowanie —> Klient użytkownika. Możesz korzystać z listy dostępnych przeglądarek lub stworzyć własny identyfikator. Ustawienia resetują się po wyłączeniu Safari, nie ma możliwości permanentnej zmiany klienta użytkownika.
Google Chrome
Zmiana na stałe
Zmiana na stałe ID klienta w Google Chrome wymaga edycji pliku chrome.dll. Najpierw musisz więc wyposażyć się w jakiś edytor heksadecymalny, proponuję darmowy bezinstalacyjny XVI32.
Przejdź teraz do folderu %HomePath%\AppData\Local\Google\Chrome\Application\nr_wersji_chrome. %HomePath% to zmienna środowiskowa wskazująca folder domowy bieżącego użytkownika, a nr_wersji_chrome to oznaczenie folderu z plikami przeglądarki (spośród dostępnych folderów wybierz ten oznaczony najwyższą liczbą). U mnie ścieżka dostępu wygląda następująco: C:\Users\DawidS28\AppData\Local\Google\Chrome\Application\5.0.375.99.
W bieżącym folderze znajdziesz plik chrome.dll. Wykonaj jego kopię zapasową (na wszelki wypadek). Otwórz chrome.dll przy pomocy wybranego edytora hex i znajdź ciąg User Agent String...
Możesz na nim (zaznaczony symbol jest zastępowany tym wpisywanym z klawiatury) wpisać wybrany nowy identyfikator. Po zakończeniu zapisz plik i przenieś go do folderu %HomePath%\AppData\Local\Google\Chrome\Application\nr_wersji_chrome. Plik musi mieć taką samą wielkość jak oryginał, dlatego nie wolno usuwać z niego żadnych znaków (możesz je tylko zmieniać), inaczej Google Chrome się nie uruchomi. Jeśli przeglądarka będzie dobrze pracować możesz usunąć swoją kopię zapasową chrome.dll. W przypadku wystąpienia błędy aplikacji wymień wspomniany plik na pierwotną wersję.
Zmiana chwilowa
Google Chrome umożliwia także zmianę identyfikatora przeglądarki na jedno uruchomienie. W tym celu należy skorzystać z Wiersza poleceń systemu Windows (uruchom: cmd) i przejść do folderu Google Chrome. Domyślnie przeglądarka jest zainstalowana w katalogu %HomePath%\AppData\Local\Google\Chrome\Application. Uruchom więc Wiersz poleceń, wpisz komendę cd "%HomePath%\AppData\Local\Google\Chrome\Application" i zatwierdź ją przyciskiem Enter. Następnie wykonaj polecenie chrome --user-agent="tutaj_wstaw_wybrany_identyfikator". Jako tutaj_wstaw_wybrany_identyfikator — jeśli zmieniasz tożsamość na Googlebota — podaj Googlebot/2.1 (+http://www.googlebot.com/bot.html).
Tak to wygląda w oknie Wiersza poleceń (symbol ↵ oznacza kontynuację wiersza):
Microsoft Windows [Wersja 6.0.6002] Copyright (c) 2006 Microsoft Corporation. Wszelkie prawa zastrzeżone. C:\Users\DawidS28>cd "%HomePath%\AppData\Local\Google\Chrome\Application" C:\Users\DawidS28\AppData\Local\Google\Chrome\Application>↵ chrome --user-agent="Googlebot/2.1 (+http://www.googlebot.com/bot.html)"
Wiele informacji dotyczących parametrów programu chrome.exe można znaleźć TUTAJ i TUTAJ.
Zagrożenia wynikające ze stosowania zmienionego identyfikatora
Mimo niewątpliwych zalet, jakie niesie za sobą zmiana User Agent String, należy także pamiętać o tym, że wiele witryn zostało wykonanych w kilku wersjach, każda do innej przeglądarki. Jeśli zmienimy nasz identyfikator mogą wystąpić nieprzewidziane problemy, np. zmiana budowy strony (dotyczy to w szczególności podawania się za robota wyszukiwarki lub przeglądarkę telefonu komórkowego czy iPhone'a). Każda przeglądarka ma swoje możliwości (większe lub mniejsze), a twórcy witryn internetowych starają się, by ich strona w każdej przeglądarce wyglądała jak najlepiej. Stąd powstają dosyć znaczne różnice pomiędzy wyglądem tej samej strony na różnym oprogramowaniu. Problem ilustrują poniższe zdjęcia:
Strona główna Google uruchomiona w Mozilli Firefox „jako Mozilla Firefox”.
Strona główna Google uruchomiona w Mozilli Firefox „jako Internet Explorer 6”.
Strona główna Google uruchomiona w Mozilli Firefox „jako iPhone 3.0”.