W poprzednim wpisie pokazałem krótko nagłówki HTTP – rodzaj naszej wizytówki przesyłanej za każdym razem, kiedy odwiedzamy jakąś stronę.

Teraz skupię się na jednym z tych nagłówków, refererze (po polsku strona odsyłająca). Jego działanie było dla mnie kompletną niespo­dzianką. Mimo że jest czymś absolutnie powszechnym.

Krótko: kiedy przechodzimy między stronami internetowymi, właściciele drugiej strony często się dowiadują, jaka była ta pierwsza. I przekazują to innym.

Zaskoczeni?

Zamiast opisywać suche fakty, pokażę Wam referera w akcji.

Ciekawostka

Angielska nazwa, referer, zawiera błąd ortograficzny. W środku powinny być dwa r. Jednak błąd wślizgnął się do oficjalnej specyfikacji, zanim ktoś zdążył go poprawić :roll_eyes:

Referer w praktyce

Poniżej mamy dwa linki. Oba prowadzą do tej samej strony, na której się teraz znajdujemy. Kliknij i zobacz, jaki referer wyświetli się w czarnym polu pod nimi:

  1. Pierwszy link (z refererem).
  2. Drugi link (bez referera).

Przychodzisz ze strony:

Masz wyłączony JavaScript!
Uwaga

Gdybyś, zamiast klikać w linki, po prostu odświeżył(-a) stronę, przez menu albo naciskając F5, to nic by się nie pojawiło. Referery wiążą się ściśle z klikaniem w linki.

Oba linki prowadzą do tej samej strony. Jednak w drugim przypadku wprost dodałem do linku zakaz przesłania referera. Te informacje są ujawniane domyślnie, o ile strona ich nie wyłączy.

No ale dobra, możesz powiedzieć. Co z tego? Ciemna Strona dowiaduje się, że przychodzę z Ciemnej Strony. Nic specjalnego.
Póki poruszasz się po jednej stronie, nie pobierając nic z zewnątrz, referer to faktycznie bzdet. Spróbuj jednak odwiedzić jakąś stronkę zewnętrzną, taką jak BrowserLeaks:

Browserleaks.com z refererem z Ciemnej Strony

Robiąc to, „poniesiesz” ze sobą na stronę B informację o tym, że przybywasz z Ciemnej Strony (strona A).

Co więcej, strona B może odsyłać do różnych rzeczy ze stron C, D i kolejnych. One również dowiedzą się, że przeszliśmy z A do B.

Chcieliśmy tylko odwiedzić jedną stronę przez link. A ta papla przesłała obcym stronom nasz nagłówek, razem z refererem. Więc, tak jak w przypadku plotkar i plotkarzy z prawdziwego życia, teraz wiedzą już wszyscy.

Co więcej, tak się dzieje nawet wtedy, kiedy zależy nam na prywatności. Przeglądanie w trybie prywatnym/incognito nie wyłącza przekazywania refererów. Nie robi tego nawet wiele dodatków blokujących reklamy śledzące.

Zdziwieni?

Na pocieszenie powiem, że na niektórych stronach przekazywanie refererów jest wyłączone. Poza tym są one przesyłane tylko wtedy, kiedy klikamy w linki.
Chodzenie między stronami przez WsteczDalej, odświeżanie strony, wklejanie adresu w pasek przeglądarki – żadna z tych rzeczy nie wyśle informacji o tym, gdzie byliśmy poprzednio.

Ciemne strony referera

Referer podobno nie powstał w złych celach, tylko jest takim trochę reliktem dawnej sieci, który ułatwiał stronom tworzenie powiązań.

Mimo to jest kilka sposobów, w jakie może zostać użyty przeciwko nam:

  • Sam link do strony może sugerować coś wstydliwego

    Przykład: 9 na 10 stron poświęconych problemom zdrowotnym łączyło się z innymi stronkami, przekazując przy tym nagłówki użytkowników.
    Dzięki temu firmy analityczne i reklamowe dostawały paczkę informacji. Na podstawie niektórych, na przykład plików cookies, mogły zapewne rozpoznać konkretnych użytkowników. A do tego w pakiecie dostawały referera pokazującego, że ta osoba oglądała właśnie podstrony o chorobach wenerycznych.

  • Referer może być częścią naszej „teczki”

    Nawet jeśli nie wstydzimy się miejsca, z którego przybywamy, odwiedzane strony mogą je połączyć z innymi informacjami, jakie o nas zbiorą i nas na tej podstawie profilować. Później mogą ujawnić profil firmom marketingowym (albo szerszej publice, jeśli ich dane wyciekną).

  • Zdradza popularność stron.

    Odpowiednik takiego „kto przeglądał twój profil” na LinkedInie.
    Czasami popularność nie jest fajną rzeczą. Jeśli administrator jakiejś strony A analizuje referery, to może zobaczyć, że trafia na nią coraz więcej użytkowników ze stronki B. Zaciekawiony może ją sprawdzić. A co, jeśli strona B to na przykład forum, na którym często beszta się stronę A? Albo konkurencja? W ten sposób strona A może podjąć działania przeciw B. O której by się nie dowiedziała, gdyby nie referery.

  • Umacnia kontrolę internetowych gigantów.

    Trochę jak poprzedni punkt, ale w wersji na dużą skalę. Referery to cenne informacje o dynamice powiązań w internecie. Firmy takie jak Google mogą dawać innym możliwość analizowania ruchu na stronie. Ale kto im zabroni liczyć przy tym referery i mieć wgląd w kawał internetu?
    Dzięki temu widzą jako jedni z pierwszych, jakie strony (a zatem również poglądy, organizacje itp.) rosną w siłę, a jakie słabną. Dokąd warto włożyć ręce, żeby jeszcze bardziej umocnić swoją pozycję.
    Czy tak robią? Na chwilę obecną chcę bardziej wczytać się w temat, więc nie powiem. Ale sama możliwość nie napawa optymizmem.

To tyle tytułem wiedzy. Mam nadzieję że trochę Cię zaskoczyłem.
Jeśli chcesz coś z tym zrobić (jako użytkownik lub właściciel strony), to czytaj dalej!

Jak ukrywać referery

Można to zrobić bardzo łatwo. Zależy od tego, do której grupy należysz:

Wolisz nic nie zmieniać ani nie instalować.

…W sumie niezbyt Cię obchodzą te całe referery. Albo może nie używasz swojego komputera i nie chcesz tak po prostu czegoś na nim zmieniać.

Ale załóżmy, że chcesz jednorazowo ukryć referera. Na przykład jesteś na jakiejś dość „osobistej” stronce A. Jest na niej link do strony B. I trochę jednak nie chcesz, żeby ktoś ze strony B zobaczył, skąd przychodzisz.

Rozwiązanie: zamiast klikać w link, skopiuj go do głównego paska przeglądarki.
Znane mi przeglądarki (Firefox, mobilny Firefox Focus i Chrome, a pewnie wiele innych) nie wysyłają wtedy referera. A na stronkę wejdziesz.

Możesz to przetestować, kopiując do paska ten link, który normalnie przesłałby referera (do BrowserLeaks).

Porada

Na komputerze klikasz link prawym przyciskiem myszy i wybierasz Kopiuj adres odnośnika. Potem klikasz górny pasek adresu i tam wklejasz adres.
Jeśli używasz komórki, przytrzymaj palec na linku i pasku, żeby wyświetliły się opcje kopiowania i wklejania.

Możesz użyć dodatku do przeglądarki

Zachęcam! To minuta klikania, a uwolni Cię od refererów na dobre.
W ramkach poniżej opisałem, jak je instalować w różnych przeglądarkach.

Pomocne dodatki

Chrome:

  1. Instalujemy dodatek Referer Control z oficjalnej stronki Google'a.
    Pójdzie szybko i bezboleśnie, do tego na początku nic Ci się nie zmieni.

  2. Wchodzimy w menu tego dodatku, na przykład klikając ikonę po prawej stronie od górnego paska z adresem:

    Ikona dodatku Referer Control na górnym pasku.

  3. Otworzy się strona z opcjami dodatku. Klikamy opcję Block w dolnej części menu. Nie zmieniamy niczego innego.

    Zaznaczona opcja Block w opcjach Referer Controla.

  4. Klikamy w linki na tej stronie, żeby sprawdzić czy działa jak powinno.

    Takie ustawienie nie usuwa refererów w obrębie tej samej strony.
    Zatem linki do Ciemnej Strony z początku wpisu powinny pokazywać to co poprzednio.
    A po kliknięciu w link do zewnętrznej stronki (BrowserLeaks), pod nagłówkiem HTTP Headers, nie powinno pokazywać referera.

Heheszki

Jeśli masz nastrój na śmieszkowanie, możesz ustawić jako referer dowolny tekst, jaki tylko Ci się podoba – wystarczy kliknąć zakładkę Custom i wpisać go w polu.
Według tego źródła referer może liczyć do 2000 znaków, więc całkiem długa rozprawka by się zmieściła.
Sam natomiast zachęcam do trollowania podglądaczy czymś krótkim, treściwym i wyglądającym jak prawdziwy adres strony:

Menu Referer Controla z ustawioną opcją Custom i wpisanym tekstem google-is-evil.com.

Pomocne dodatki

Firefox:

  1. Instalujemy dodatek Referer Modifier z oficjalnej stronki.

    (Na Firefoksie też można użyć Referer Controla, ale według opinii użytkowników coś w nim nie działa. Dlatego osobiście korzystam z zamiennika).

  2. Dodatek będzie niewidoczny na pasku, więc musimy wejść do menu dodatków (np. przez menu główne albo naciskając Ctrl+Shift+A).
  3. Wybieramy go z listy i klikamy w zakładkę Preferencje:

    Środkowa zakładka Preferencje w opcjach dodatku.

  4. Patrzymy na opcje, naciskamy guzik na prawo od napisu ANY i wybieramy opcję Remove. Przy SAME najbezpieczniejsza jest z kolei opcja Keep:

    Opcje zaznaczone w ustawieniach Referer Modifiera

  5. Ważne! Klikamy przycisk Save configuration. Nic się nie wyświetli, ale nasze ustawienia zostaną zapisane.

    Referer nie będzie wysyłany, jeśli klikniemy na stronie A link do strony B. Ale będzie działał w obrębie jednej strony (czyli np. Ciemna Strona → Ciemna Strona).

  6. Testujemy na linkach z tej strony, czy wszystkie referery usunięte.

Inne przeglądarki na PC:

Wiele innych przeglądarek na komputery (Edge, Brave, Opera, Vivaldi...) opiera się na tym samym silniku co Chrome, więc Referer Control powinien w nich działać tak samo.
O Safari od Apple trudno mi się wypowiadać, bo nie korzystałem.

Inne mobilne:

Na telefonie jest trudniej, ponieważ większość przeglądarek nie daje Wam możliwości instalowania dodatków.

Chwalebnym wyjątkiem na Androidzie jest Firefox (nie Focus/Klar ani inne specjalne wersje, tylko ta główna). Powinno dać się na nim zainstalować Referer Modifiera, o którym wcześniej wspominałem.
Aktualizacja: Sprawdziłem i niestety trzeba użyć albo starszej wersji, albo pogmerać w ustawieniach najnowszej nieoficjalnej (tzw. Nightly); wersje aktualne dopuszczają póki co tylko kilka wybranych dodatków.

Nie wiem, jak jest na iOS (iPhone'ach). Wiem jedynie, że wszystkie przeglądarki na tym systemie muszą korzystać z silnika Safari (również Chrome i Firefox!). Więc jeśli Safari nie daje możliwości usuwania refererów, to niestety mamy pecha.

Masz swoją stronkę i nie chcesz zdradzać refererów użytkowników.

To się ceni! :+1:

Jeśli używasz do tworzenia swojej strony popularnego Wordpressa, to możliwe że nie musisz nic robić. Według tego artykułu Wordpress automatycznie wyłącza przekazywanie refererów.

Natomiast jeśli musisz samodzielnie usunąć referery, jednym ze sposobów jest dodanie atrybutu rel="noreferrer" do tych linków, które nie powinny ich przekazywać. Wyglądają wtedy tak:

<a href="TWÓJ_LINK" rel="noreferrer">

Możesz też wyłączyć wszystkie referery za jednym zamachem. Wystarczy że dodasz jedną linijkę do głównego szablonu swojej strony, w jej elemencie head. Ta linijka to:

<meta name="referrer" content="same-origin"/>

Jeśli ją dodasz – i nie wyłączysz żadną inną regułką – referery będą działały tylko w obrębie Twojej stronki, a w przypadku linków do stron zewnętrznych będą usuwane. Obce strony nie zobaczą, że ktoś przyszedł od Ciebie.

Taką właśnie metodę wybrałem dla Ciemnej Strony. Do szablonu dodałem regułkę wskazującą, żeby zawsze usuwać referery. Na tej stronie wyjątkowo jej nie ma, żeby dało się pokazać ich działanie.

Możesz natomiast wejść na dowolną inną podstronkę – na przykład stronę główną – i spojrzeć w źródło strony (prawy przycisk myszy → Pokaż źródło).
O ile nic nie zmieniałem, element wyłączający referery będzie w linijce 7 od góry.