Wojtek Kosior

 

2025-09-30

Elementy śledzące na stronach WWW

Często słyszy się ludzi rozmawiających o tym, jak reklamy w internecie odzwierciedlają to, czym dana osoba się w ostatnim czasie interesowała. Przykładowo — ktoś kupuje buty, a potem przez miesiąc widzi reklamy butów. Większość osób nie wie jednak, że zazwyczaj to właściciele stron WWW dają korporacjom takim jak Google czy Facebook dostęp do danych poprzez przeglądarki użytkowników. Podobnie mało osób wie, że jest to robione nielegalnie, a często też nieświadomie.

Jak działa wyświetlanie strony WWW

Jeśli użytkownik wpisze w przeglądarce adres, np. https://example.com, przeglądarka wysyła do serwera pod adresem example.com prośbę o przysłanie zawartości tej strony. Taką "prośbę" będziemy nazywać "zapytaniem HTTP". W następstwie zapytania serwer wysyła przeglądarce odpowiedź (którą będziemy nazywać "odpowiedzią HTTP"). Ta odpowiedź zawiera treść strony — zazwyczaj tekst w formacie "HTML". Tekst HTML zawiera zrozumiałe dla komputera informacje o zawartości tekstowej strony, układzie graficznym elementów itd. Wygląda on mniej więcej tak

<!DOCTYPE html>
<html>
<head>
    <title>Przykładowy tytuł</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
</head>

<body>
<div>
    <h1>Przykładowy nagłówek</h1>
    <p>Lorem ipsum dolor sit amet...</p>
</div>
</body>
</html>

Przeglądarka internetowa przetwarza tekst HTML i na jego podstawie wyświetla użytkownikowi stronę. Ale...

Od stworzenia sieci WWW w 1990-tym oferowane przez nią funkcjonalności ciągle się mnożą. Na przestrzeni lat doszła możliwość wyświetlnania grafik, odtwarzania multimediów, uruchamiania programów w przeglądarkach itd. A wraz z tym postępem, coraz trudniej jest jako użytkownik zachować kontrolę nad przeglądarką internetową.

Inne zapytania HTTP

Na stronie WWW można np. umieścić obrazek. Robi się to poprzez umieszczenie odpowiedniego elementu (tzw. "tagu") w udostępnianym przez serwer strony kodzie HTML. Przykładowo, jeśli przy przetwarzaniu HTML'a przeglądarka napotka taki fragment

<img src="https://example.com/resources/banana.jpg" alt="photo of 3 bananas">

wyśle ona kolejne zapytanie HTTP do serwera example.com, tym razem z prośbą o przysłanie wskazanego pliku z obrazkiem. Po otrzymaniu odpowiedzi, wyświetli ona obrazek jako część strony.

Tak więc dana strona może inicjować pobieranie przez przeglądarkę dodatkowych multimediów. Co ciekawe, te multimedia nie muszą pochodzić z tego samego źródła, co korzystająca z nich strona. Przykładowo, strona udostępniana przez serwer pod adresem example.com mogłaby zawierać w swoim kodzie taki fragment

<img src="https://nsa.gov/resources/banana.jpg" alt="photo of 3 bananas">

Przeglądarka, widząc w tym fragmencie adres nsa.gov, automatycznie połączyłaby się z tym adresem i wysłałaby zapytanie HTTP o plik znajdujący się pod ścieżką /resources/banana.jpg.

W tym momencie warto wyjaśnić, co znajduje się w zapytaniu HTTP wysyłanym przez przeglądarkę. Oprócz informacji o ścieżce żądanego pliku (w tym przypadku /resources/banana.jpg) współczesna przeglądarka dołącza też

Dodatkowo, przesłanie zapytania HTTP przez sieć następuje poprzez tzw. "protokół IP". Przeglądarka, łącząc się za pomocą protokołu IP z danym serwerem, informuje go o swoim tzw. "adresie IP". Adres IP stanowi ciąg 4-ch lub 16-tu bajtów, przedstawiany zazwyczaj w postaci cyfr oddzielonych przecinkami (np. 192.0.2.1) lub dwukropkami (np. 2001:db8:0:1234:0:567:8:1). Podobnie jak adres pocztowy pozwala na znalezienie budynku, adres IP pozwala na znalezienie danego urządzenia w sieci internet. Z jednego adresu IP w sieci internet może co prawda korzystać wiele urządzeń, podobnie jak pod jednym adresem pocztowym może mieszkać wiele osób. Mimo to, znajomość adresu IP w sieci internet pozwala na oszacowanie — czasem z dokładnością nawet do kilkudziesięciu metrów — lokalizacji urządzenia. Z kolei w połączeniu z innymi informacjami z zapytania HTTP, znajomość tego adresu umożliwia skojarzenie ze sobą kilku takich zapytań wysyłanych w różnym czasie przez przeglądarkę.

Nie jest więc czymś zaskakującym, że wg definicji Komisji Europejskiej adres IP może się zaliczać do danych osobowych.

Czcionki od Google'a

Wykorzystywanie przez strony internetowe zasobów z innych serwisów jest obecnie czymś bardzo powszechnym. Są to nie tylko grafiki ale też m.in. tzw. "skrypty" (o których mowa dalej) i... czcionki.

Twórca strony może w kodzie HTML zamieścić instrukcję dla przeglądarki, żeby dany tekst wyświetlić w konkretnej czcionce. Taki mechanizm stosuje się m.in. po to, żeby tekst na stronie wyglądał zawsze tak samo, niezależnie od rodzaju i wersji przeglądarki internetowej oraz systemu operacyjnego użytkownika. W przeciwnym wypadku, przeglądarka użyłaby swoich domyślnych czcionek, które wyglądem i wymiarami poszczególnych znaków mogą się różnić od czcionek w innych przeglądarkach.

Czcionka do wykorzystania na stronie jest zwykle pobierana — podobnie, jak grafiki na stronach — osobnym zapytaniem HTTP. Przykładowo, poniższy fragment kodu strony

@font-face {
  font-family: 'Albert Sans';
  font-style: italic;
  font-weight: 100;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/albertsans/v1/i7FtZd_QA1V.woff2) format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB;
}

instruuje przeglądarkę, jak ma pobrać czcionkę o nazwie "Albert Sans". Przeglądarka ma wysłać zapytanie HTTP do serwera pod adresem fonts.gstatic.com, który to adres należy do firmy Google.

A Google już od lat za darmo udostępnia czcionki na swoich serwerach. Mogą z nich "korzystać" wszystkie strony internetowe, bez potrzeby podpisywania jakiejkolwiek umowy czy pytania o zgodę. Jest to prezentowane jako ułatwienie dla twórców stron, którzy — choć mogliby — nie muszą udostępniać tych czcionek z własnych serwerów.

Nawet niezgodny z prawem udział Google'a w programie masowej inwigilacji PRISM nie przesłania wielu programistom potencjalnych korzyści z korzystania z usług tej firmy. W pewnym momencie niektóre z najpopularniejszych narzędzi do tworzenia stron internetowych, m.in. Wordpress i Hugo, zaczęły pośrednio lub bezpośrednio wykorzystywać czcionki od Google'a w generowanych stronach. "pośrednio" – bo niektóre z takich narzędzi nie robią tego same z siebie, a jedynie dają możliwość instalowania w nich tzw. "motywów" i "wtyczek". Często to właśnie najpopularniejsze, wręcz oficjalne motywy i wtyczki są odpowiedzialne za dodawanie Google'owskich czcionek do stron.

Ludzie korzystający z takich narzędzi do tworzenia stron często nie zdają sobie nawet sprawy z działających pod spodem mechanizmów. W ten sposób czcionki Google'a znajdują miejsce na tysiącach stron WWW. A z punktu widzenia prawa to właściciele witryn są winni udostępniania danych osobowych (wspomnianego adresu IP) podmiotowi trzeciemu.

Skrypty, piksele i inne

Na podobnej do czcionek zasadzie działają też takie mechanizmy, jak śledzące, jednopikselowe grafiki z serwerów Facebook'a czy skrypty z serwerów CloudFlare'a (również amerykańskiej megakorporacji). Jeśli zostaną dodane do strony WWW przez jej twórcę, wspomniana firma poznaje adresy IP użytkowników strony + dodatkowe informacje z nagłówków HTTP. Razem pozwalają one tym firmom określić, że dana preglądarka internetowa o danej godzinie otworzyła daną stronę.

W szczególności, niektóre mechanizmy pozwalają dowiedzieć sie więcej o urządzeniu użytkownika. Np. skrypty — programy działające na stronach WWW, wykonywane przez przeglądarki internetowe — umożliwiają zebranie informacji o liczbach rdzeni w procesorze, niektórych parametrach karty graficznej, dostępnych w systemie czcionkach itd. Za pomocą takich danych można często skorelować odwiedziny różnych witryn przez jednego użytkownika.

Słynne "ciasteczka" również ułatwiają poznanie części historii przeglądania użytkownika. Ciasteczko to dane zapisane przez stronę w przeglądarce internetowej. Przy kolejnych odwiedzinach danej strony, przeglądarka wysyła do serwera zawartość zapisanych wcześniej dla tej strony ciasteczek. Ciasteczko może zawierać np. ustawienia dotyczące wydlądu strony (dark mode itp.) czy identyfikator sesji zalogowanego użytkownika. To są uczciwe zastosowania mechanizmu ciasteczek. Oprócz tego, ciasteczka są oczywiście wykorzystywane do śledzenia odwiedzi stron przez użytkowników internetu. Identyfikator zapisany przez reklamodawcę w ciasteczku pozwala na bardzo jednoznaczne skorelowanie aktywności użytkownika w sieci. Pod względem śledzenia, techniki takie, jak wspomniane zbieranie parametrów urządzenia użytkownika, chylą czoła ciasteczkom.