W ramach „Internetowej inwigilacji” piszę póki co o nagłówkach HTTP – swoistej wizytówce z informacjami, które za kulisami wysyła stronom internetowym nasza przeglądarka.

W tych wpisach przyjąłem pewną analogię – Internet jest jak sieć placówek pocztowych. Przesyłają między sobą listy i paczki z dowolną zawartością.

Nagłówki HTTP to odpowiednik etykiet naklejonych na te przesyłki. Zawierają adres nadawcy oraz informacje o tym, jak obchodzić się z przesyłką. Każdy, kto dostanie przesyłkę, może je odczytać.

Powoli zbliżamy się do końca, jeśli chodzi o informacje z tych „etykiet”. Czas na jedną szczególnie kluczową. Do tego stopnia, że chyba każdy choć raz usłyszał to pojęcie.

Czas na pliki cookies (z angielskiego „ciasteczka”).

W tym wpisie skupię się na jednym z dwóch głownych rodzajów: na ciasteczkach od stron bezpośrednio odwiedzanych (ang. first-party cookies).

Drugi rodzaj (third-party cookies; ciasteczka od stron zewnętrznych) zostawimy na przyszły wpis.

O ciasteczkach po ludzku

Pliki cookies pełnią kluczową rolę w śledzeniu użytkowników, więc warto dobrze je poznać. Dlatego zaczniemy od przykładów na pobudzenie wyobraźni.

Mówiąc najprościej: to strzępki danych, które strony internetowe „dają” naszej przeglądarce. Ta zapisuje je na dysku. A przy kolejnych kontaktach pokazuje je tym samym stronom, od których je dostała.

Do czego służą

Zastosowań ciasteczek jest mnóstwo. Jednym z częstszych jest umożliwienie nam logowania się na nasze profile/konta.

W tym wypadku pliki cookies są jak identyfikator noszony na smyczce, taki badge w korpojęzyku.

Podczas pierwszych odwiedzin na terenie firmy jesteśmy jeszcze obcy, nie wszędzie nas wpuszczają.

Przeróbka pewnego mema. Widać ochroniarza w czarnym ubraniu zastawiającego ciałem drzwi. Na jego twarz naklejono logo Facebooka, a na klatkę piersiową pole z komunikatem mówiącym 'Zaloguj się'.

Ale jeśli nas zatrudnią (zalogujemy się), to dostajemy własny identyfikator (ciasteczko). Od tej pory, nosząc go przy sobie, możemy swobodnie wchodzić do różnych firmowych pomieszczeń (na podstrony).

Przeróbka drugiego panelu z mema. Na pierwszym planie doklejono rękę trzymającą kilka ciasteczek. Na drugim planie ochroniarz uchyla drzwi. Zamiast twrzy ma naklejone logo Facebooka.

Oczywiście ciasteczka służą nie tylko do rozróżnienia „swój czy obcy”. Mogą zawierać dowolną informację:

  • listę wybranych przez nas produktów

    (wtedy są jak koszyk na zakupy, do którego dokładamy różne rzeczy);

  • ile zebraliśmy punktów

    (jak karta stałego klienta, na której nabija się pieczątki);

  • do której należymy grupy

    (jak opaska w hotelu, dająca różne przywileje dla różnych grup);

  • …i wiele, wiele innych.

Jedna rzecz jest uniwersalna. Każde ciasteczko to jakaś informacja, którą dostajemy od strony internetowej.
Potem, kiedy ją pokazujemy tej samej stronie, zapewne będziemy traktowani inaczej, niż gdybyśmy jej nie mieli.

Czasem spotykam zwrot „ciasteczka cię śledzą”. Nie. To straszny skrót myślowy. To tylko tekst i same nie są do niczego zdolne. Są równie martwe jak ten identyfikator na smyczce.

Ewentualne śledzenie następuje po stronie osób (serwerów), którym pokazujemy nasze ciasteczka. To one, otrzymując tę informację, mogą robić różne rzeczy.

Jak są przechowywane

Niektórzy, pisząc o przechowywaniu plików cookies, korzystają z analogii słoja z ciasteczkami. Ale moim zdaniem nie do końca oddaje ona rzeczywistość.

W słoju wszystko jest trzymane razem, wymieszane ze sobą. Tymczasem pliki cookies są ściśle podzielone według tego, od jakich stron pochodzą.

Zamiast słoja wolę porównanie do szafy z ciasteczkami. Takiej z wieloma przegrodami. Zresztą podobnych używa się na poczcie, więc pasuje też do naszej głównej analogii.

Zdjęcie pokazujące szafę na dokumenty z wieloma przegrodami.

Inne możliwe skojarzenie to kalendarz adwentowy. Wiele małych, odrębnych przegródek, w każdej coś słodkiego.

Nasuwa się pytanie: czy strona internetowa A może podejrzeć ciasteczka przeznaczone dla strony B? Albo podrzucić coś do przegródki dla strony B?

Na szczęście nie. Każda ma własną przegródkę i nie może w żaden sposób ingerować w pliki cookies dla innych stron. Przeglądarka tego pilnuje.

Tym niemniej strona B może być swoistym „gościem” na stronie A. Wtedy może dawać ciasteczka we własnym imieniu.
To tak zwane third-party cookies, które dokładniej omówię w kolejnym wpisie.

Ciekawostka

Czasem odpowiednie ciasteczko to wszystko, czego potrzeba do wejścia na konto, więc lepiej trzymać je w tajemnicy.

Istnieje coś takiego jak kradzież ciasteczek, czyli skopiowanie ich i próba wejścia z nimi na nasze konta. Dlatego, dopuszczając obcą osobę do naszego komputera, lepiej jej patrzmy na ręce (nawet jeśli nie otwiera niczego poza przeglądarką plików).

Niektóre strony stosują dodatkowe zabezpieczenia i oprócz ciasteczek patrzą na inne informacje od nas, takie jak user agent albo adres IP (omawiane w poprzednich wpisach). Jeśli widzą coś nietypowego, to nas nie wpuszczają.

To zabezpieczenie to taki odpowiednik czujnej osoby z recepcji. Widzi oficjalnego badge'a, ale pamięta że do tej pory pokazywała go ruda dziewczyna, a nie łysy brodacz. Czyli coś się nie zgadza.

Jak się ich używa

Czas na bardziej całościowy przykład.

Wróćmy do analogii pocztowej. Tak może wyglądać przykładowa komunikacja z wykorzystaniem ciasteczek:

  1. Prosimy personel w okienku (przeglądarkę) o kontakt z jakimś adresatem/stroną (wysłanie żądania).
  2. Personel poczty zerka, czy ten adresat ma swoją przegródkę w szafie. Na razie nie.
  3. Wysyła adresatowi naszą przesyłkę.
  4. Adresat odsyła coś od siebie.

    Do koperty przyklejona jest informacja dla poczty, np. „proszę do wszystkich przesyłek dla mnie dopisywać hasło=okoń”. Poczta zakłada tej stronie jej własną przegródkę w szafie i umieszcza w niej tę informację.

  5. Od tej pory za każdym razem, gdy prosimy o wysłanie czegoś tej stronie, pracownik dopisuje na kopercie ustalone hasło.
  6. Dzieje się tak aż do odwołania. Które może nastąpić na kilka sposobów:

    • wprost poprosimy o usunięcie zawartości szafy (wyczyszczenie plików cookies);
    • strona „nadpisze” hasło (np. prześle dopisek „od teraz proszę pisać hasło=panga”);
    • minie termin ważności, jeśli jakiś był (np. przy wzmiance o haśle mogła być też adnotacja „proszę dopisywać to hasło tylko do dnia 11.11.2021”)

Pliki cookies w praktyce

Dość już analogii i pobudzania wyobraźni, czas na prawdziwy przykład z przeglądarki.

Żeby odpocząć od różnych portali społecznościowych, wziąłem na warsztat stronkę FlixBusa.

Przede wszystkim przed wejściem na nią usunąłem wszystkie ciasteczka (opcja Usuń historię przeglądania), żeby być na świeżo.

Następnie otworzyłem sobie narzędzia przeglądarki (skrót Ctrl+Shift+I) i zakładkę Sieć, żeby widzieć dokładnie, jakie dane wysyłały sobie strona i przeglądarka.

Pierwsza wizyta

Po tych przygotowaniach wszedłem na stronę. Na liście wyświetliły się różne pliki, jakie pobrała moja przeglądarka. Kliknąłem na pierwszy od góry, czyli główną stronę. Potem zerkałem w zakładki NagłówkiCiasteczka.

Połączone zrzuty ekranu z narzędzi przeglądarki Firefoksa. Cyframi 1, 2 i 3 oznaczyłem, co trzeba było kliknąć.

Znalazłem tam takie informacje (edytowane dla przejrzystości):

Lista plików cookies. Listę elementów wysłanych zastąpiłem tekstem mówiącym, że nie ma tam nic o plikach cookies. Na liście elementów otrzymanych zaznaczyłem dwa elementy.

Przy pierwszym kontakcie nasza przeglądarka nie wysłała nic związanego z ciasteczkami.
Za to dostała dwa w nagłówkach odpowiedzi od FlixBusa! (Oznaczyłem je zieloną ramką). O tajemniczych nazwach AWSALB oraz AWSALBCORS.

Można również wyświetlić dokładniejsze informacje o tych ciasteczkach:

Szczegółowe informacje dotyczące dwóch plików cookies.

Widać w tym miejscu, że oba z nich zawierają datę wygaśnięcia (expires) oraz wartość (value), będącą w tym wypadku ciągiem losowych znaków.

Widać też, że ciasteczka są identyczne pod względem atrybutów, ale ciasteczko AWSALBCORS zawiera dwa dodatkowe: samesitesecure.

Co ciekawe, gdybyśmy weszli w jeszcze inną zakładkę Dane > Ciasteczka, to znaleźlibyśmy ich jeszcze więcej!
Łącznie strona FlixBusa dała mojej przeglądarce 8 ciasteczek.

Dlaczego w zakładce Sieć widać tylko dwa, a w zakładce Ciasteczka więcej?

To dlatego, że pozostałe ciasteczka nie zostały wysłane do nas w nagłówkach, tylko najwidoczniej wstawione przez kod JavaScript.
Daje on stronom interaktywność i jeszcze o nim opowiem w przyszłym wpisie. Ale póki co zapamiętajmy tylko, że pliki cookies możemy otrzymać na różne sposoby.

Za kulisami wszystkie 8 ciasteczek nasza przeglądarka włożyła do swojej „szafy z przegródkami”. Pliku cookies.sqlite, czyli bazy danych gdzieś w wewnętrznym folderze Firefoksa.

Tyle przy pierwszej wizycie. A jeśli teraz wejdziemy na stronę ponownie (albo np. ją odświeżymy, naciskając F5), to co nam się ukaże w informacjach o cookies?

Druga wizyta

Znowu otrzymujemy w nagłówkach od Flixbusa dwa ciasteczka, AWSALBAWSALBCORS. Ale oprócz tego nasza przeglądarka wysłała coś od siebie!

Pliki cookies przesłane stronie przez moją przeglądarkę podczas drugiej wizyty. Niektóre z nich, takie jak to o nazwie sp, mają nazwy złożone z długich ciągów znaków.

U mnie ciasteczka wysłane nieco się różnią od otrzymanych, bo o jeden raz za dużo je wyczyściłem między wizytami. Mea culpa.

Ale w normalnym wypadku to te same 8 ciasteczek, które przeglądarka poprzednio umieściła „w szafie”.

Po ich otrzymaniu serwer Flixbusa może potraktować nas inaczej niż kogoś, kogo wcześniej nie widział. Ale przede wszystkim – jeśli coś teraz kupimy, to będzie mógł za kulisami powiązać informacje.

„Osoba z takim samym sp kupiła parę dni temu bilet do Berlina. A teraz do Budapesztu”.
(To tylko przykład; nie wiem czy którekolwiek z ciasteczek jest tu identyfikatorem. Ale każde z długim ciągiem znaków mogłoby nim być).

I tak to się żyje w tym internecie. Kiedy chodzimy po stronach, to za kulisami nasza przeglądarka cały czas otrzymuje, kopiuje, wysyła i kasuje ciasteczka.

A strony coś z nimi robią. Oficjalnie muszą mówić, co takiego. A nam pozostaje wierzyć na słowo.

Ciekawostka

Zaciekawiły mnie te ciasteczka z FlixBusa, więc trochę o nich poczytałem.

Okazuje się, że AWSALB to dwa połączone skróty:

  • Amazon Web Services (oddział Amazona wynajmujący serwery);
  • Application Load Balancer (program pozwalający odciążyć strony, gdy mają wielu odwiedzających).

Więcej o tych ciasteczkach oraz o ich celu pisze sam Amazon.

Z kolei ciasteczko ab_bucket zapewne mówi, do jakiej grupy testowej trafiliśmy. A/B testing polega na wysyłaniu różnym użytkownikom różnych wersji strony i patrzeniu, co zrobią; bucket (dosł. „wiadro”) to ogólne określenie na grupę, do której coś przydzielono.

Wniosek: nazwy i skróty często sporo nam mówią!

Ciemne strony plików cookies

Ciemnych stron będzie dużo więcej, kiedy przejdziemy do ciasteczek od „stron-gości” :wink:
Ale nawet te zwykłe, wymieniane tylko między nami i stroną A, potrafią wiele o nas zdradzić.

Przede wszystkim ciasteczka są dla strony ostatecznym identyfikatorem, pewniejszym niż wszelkie inne informacje. Każdy dostaje własny, unikalny.

Po wczytaniu się w poprzednie wpisy z „Internetowej inwigilacji” ktoś może wpaść na pomysł:

Zmienię sobie IP i wejdę na swoje konto na Facebooku! Nie poznają mnie.

Niestety tak to nie działa. Bez odpowiednich plików cookies nie wejdziemy na swoje konto.

Gdybyśmy spróbowali np. odwiedzić nasze konto przez nową przeglądarkę, Y, to po prostu pokaże się ekran logowania. Musimy wpisać login i hasło. A po zalogowaniu dostajemy nowe ciasteczka.
Zaś serwer może sobie zanotować „Aha, czyli użytkownik bob.adook.725364 oprócz przeglądarki X używa też Y”.

Z jednej strony trudno sobie wyobrazić inne rozwiązanie problemu prywatnych kont. Strona musi skądś wiedzieć, kogo wpuścić na dane konto. Potrzeba jakiegoś identyfikatora.

A efekt uboczny – że dzięki ciasteczkom wie dokładnie, co na niej robiliśmy? Nie byłoby to problemem przy mniejszych stronach, gdzie i tak po zalogowaniu nie zostawimy wielu informacji.

Ale spędzając godziny na stronach gigantów – jak Facebook, Google czy Amazon – zostawiamy dużo cennych danych o sobie, przypisanych do naszej tożsamości.

W ten sposób wielkie firmy stają się de facto odrębnymi królestwami w szerszym internecie. Nawet gdyby mniejsze firmy profilujące całkiem wyginęły, to giganci pozostaną.
A ludzie będą krążyć po ich stronach i usypywać z ciasteczek historię wszystkiego, co na nich robili.

Jak sobie z nimi radzić

Jednym z przypadków, kiedy możemy chcieć unikać ciasteczek od odwiedzanej strony, jest chęć zachowania anonimowości. Żeby nie powiązać czegoś z naszym istniejącym kontem.

Przykład? Chcemy jednorazowo sprawdzić na YouTubie parę filmów, żeby lepiej zrozumieć obcy światopogląd. Ale nie chcemy, żeby YT zapisał to jako nasze zainteresowania i podsuwał nam to częściej.

Inny przykład? Jakąś stronę możemy odwiedzić tylko parę razy, a potem nas nie wpuszcza. Ale jeśli sprawdza to na podstawie plików cookies, to po ich usunięciu zresetujemy sobie licznik.

Przypomnę, że przy stronach wymagających logowania nic nie zdziałamy. Nie da się ich odwiedzić anonimowo. Bez ciasteczka nie wejdziemy, a ciasteczko nas identyfikuje. W tym wypadku pozostaje logowanie przy użyciu alternatywnego konta.

Jeśli jednak nasza strona nie wymaga logowania, żeby z niej korzystać – jak YouTube – to jest kilka sposobów.

Tryb incognito

Obecny chyba w każdej przeglądarce.

W Firefoksie włączamy go przez Ctrl+Shift+P.
W Chromium przez Ctrl+Shift+N.
W obu tych przeglądarkach – a także w pozostałych – powinien być również dostępny poprzez menu w górnym prawym rogu.

Niektórzy znają go jedynie z tego, że nie zapisuje historii (więc jest dobry do przeglądania pewnych stronek na wspólnym rodzinnym komputerze).

Ale oprócz tego ma inną zaletę, cenniejszą dla nas. Nie korzysta z zapisanych plików cookies. Tworzy sobie dla nich nową, tymczasową bazę na czas jednej sesji, a potem ją usuwa.

W praktyce oznacza to, że strony odwiedzane w trybie incognito nie dowiedzą się od nas, że już je odwiedzaliśmy.
Mogą próbować to odgadnąć na podstawie innych informacji. Ale nasza przeglądarka nie powie im tego wprost.

Ciekawostka

Na urządzeniach mobilnych z Androidem przydać się może przeglądarka Firefox Focus. Zachowuje się tak, jakby tryb incognito był przez cały czas aktywny, regularnie usuwa pliki cookies.
Jest jednak dość niszowa, przez regularne czystki wymaga częstego logowania od nowa i, w przeciwieństwie do głównego mobilnego Firefoksa, nie obsługuje dodatków. Dlatego podaję ją tylko jako ciekawostkę.

Dodatek do przeglądarki

Pliki cookies profilujące odwiedzających znajdziemy czasem nawet na stronkach, na które nie trzeba się logować. Albo które w ogóle nie zapewniają opcji logowania.

Na takie wypadki warto zainstalować mocnego ad blockera, takiego jak uBlock Origin (koniecznie Origin; jest też sam uBlock, ale to nie o niego chodzi!).

Nie powinien przeszkadzać w działaniu strony, bo blokuje tylko wybrane elementy ze swojej bazy rzeczy złośliwych. A w wielu przypadkach pomoże.

uBO jest zresztą do tego stopnia fajnym narzędziem, że poświęciłem mu całe dwa wpisy.
Najlepiej zacząć od tego krótszego, na temat instalacji.

Podsumowanie

Poznaliśmy ogólną zasadę działania plików cookies – rzeczy, bez której znany nam internet by zapewne nie działał. A jednocześnie jednego z głównych narzędzi inwigilacji.

W obecnej formie ciężko z nimi cokolwiek zrobić. Możemy co najwyżej pamiętać, że kiedy jesteśmy zalogowani i chodzimy po podstronach czegoś większego (jak facebook.com), to możemy zapomnieć o prywatności.

Ale jak to się dzieje, że ten sam Facebook czy Google są w stanie poznać naszą aktywność również poza swoimi stronami?

W tym miejscu wkracza fascynujący temat ciasteczek zewnętrznych (third-party cookies). To im poświęcę kolejny wpis.

Do zobaczenia!