Skip to main content

Rodzaje plików cookie: kompletny przewodnik techniczny

Nie wszystkie pliki cookie są takie same. Rodzaj pliku cookie decyduje o tym, jak długo się utrzymuje, kto może go odczytać, jak bezpiecznie jest przesyłany oraz — co kluczowe — czy wymaga zgody użytkownika. Zrozumienie tych różnic jest niezbędne zarówno z punktu widzenia zgodności z przepisami, jak i wdrożenia technicznego.

Sesyjne a trwałe pliki cookie

Najbardziej podstawowe rozróżnienie dotyczy tego, jak długo plik cookie funkcjonuje.

Sesyjne pliki cookie

Sesyjny plik cookie istnieje wyłącznie przez czas trwania sesji przeglądarki. Nie posiada atrybutu Expires ani Max-Age. Gdy użytkownik zamyka przeglądarkę, plik cookie zostaje usunięty.

Set-Cookie: cart_id=xyz789; Path=/; Secure; HttpOnly

Sesyjne pliki cookie są zazwyczaj wykorzystywane do:

  • Utrzymywania stanu zalogowania podczas wizyty
  • Zawartości koszyka zakupowego
  • Tokenów ochrony przed atakami CSRF
  • Danych z formularzy wieloetapowych

Ponieważ sesyjne pliki cookie nie są trwałe, są zazwyczaj mniej ingerujące z perspektywy prywatności. Wciąż jednak wymagają zgody, jeśli nie są ściśle niezbędne do świadczenia usługi, o którą poprosił użytkownik.

Trwałe pliki cookie

Trwały plik cookie posiada wyraźnie określoną datę wygaśnięcia. Przetrwa ponowne uruchomienie przeglądarki i pozostaje na urządzeniu użytkownika aż do wygaśnięcia lub ręcznego usunięcia.

Set-Cookie: preferences_lang=en; Path=/; Max-Age=31536000; Secure

Ten plik cookie będzie utrzymywał się przez rok (31 536 000 sekund). Typowe zastosowania obejmują:

  • Funkcję „zapamiętaj mnie” przy logowaniu
  • Preferencje językowe i motywu
  • Identyfikatory analityczne (pliki cookie Google Analytics utrzymują się nawet do 2 lat)
  • Śledzenie reklamowe (niektóre reklamowe pliki cookie utrzymują się przez 13 miesięcy lub dłużej)

Trwałe pliki cookie podlegają większej kontroli w świetle przepisów o ochronie prywatności. CNIL (francuski organ ochrony danych) zaleca maksymalny okres życia pliku cookie wynoszący 13 miesięcy, przy czym zgoda również musi być odnawiana przynajmniej co 13 miesięcy.

Własne a zewnętrzne pliki cookie

To rozróżnienie ma kluczowe znaczenie w debacie o prywatności i bezpośrednio wpływa na wymogi dotyczące zgody.

Własne pliki cookie (first-party)

Własny plik cookie jest ustawiany przez domenę, którą użytkownik faktycznie odwiedza. Jeśli odwiedzasz example.com, każdy plik cookie ustawiony przez example.com jest plikiem własnym.

Własne pliki cookie służą do podstawowych funkcji witryny: sesji, preferencji, analityki prowadzonej samodzielnie przez operatora witryny. Mogą być odczytane wyłącznie przez domenę, która je ustawiła.

Przykład: odwiedzasz shop.example.com. Serwer ustawia plik cookie o nazwie session_id. Ten plik cookie jest wysyłany wyłącznie do shop.example.com oraz jej subdomen. Żadna inna witryna nie ma do niego dostępu.

Zewnętrzne pliki cookie (third-party)

Zewnętrzny plik cookie jest ustawiany przez domenę inną niż ta, którą odwiedza użytkownik. Gdy example.com ładuje skrypt reklamowy z ads.tracker.com, a ten skrypt ustawia plik cookie pod domeną tracker.com, jest to zewnętrzny plik cookie.

W ten sposób działa śledzenie międzywitrynowe. Plik cookie tracker.com jest wysyłany przy każdym żądaniu do tracker.com, niezależnie od tego, która witryna wywołała to żądanie. Jeśli skrypty tracker.com są osadzone na 10 000 witryn, mogą obserwować tego samego użytkownika na wszystkich 10 000 witrynach.

Zewnętrzne pliki cookie są głównym celem zarówno działań organów regulacyjnych, jak i ograniczeń wprowadzanych na poziomie przeglądarek:

  • Safari domyślnie blokuje zewnętrzne pliki cookie od 2020 roku (ITP)
  • Firefox domyślnie blokuje znane zewnętrzne systemy śledzenia (ETP)
  • Chrome odchodzi od zewnętrznych plików cookie w ramach inicjatywy Privacy Sandbox
  • Działania organów regulacyjnych w przeważającej mierze skierowane są przeciwko zewnętrznym plikom cookie służącym do śledzenia

Bezpieczne pliki cookie (Secure)

Plik cookie z atrybutem Secure jest wysyłany wyłącznie za pośrednictwem połączeń HTTPS. Nigdy nie zostanie przesłany przez nieszyfrowane połączenie HTTP.

Set-Cookie: auth_token=secret123; Secure

Zapobiega to przechwyceniu pliku cookie przez atakującego typu man-in-the-middle na niezabezpieczonym połączeniu. Każdy plik cookie zawierający dane wrażliwe — identyfikatory sesji, tokeny uwierzytelniające, dane osobowe — powinien być zawsze oznaczony jako Secure.

Z perspektywy zgodności z przepisami brak stosowania flagi Secure na wrażliwych plikach cookie może zostać uznany za niewdrożenie odpowiednich środków technicznych zgodnie z art. 32 GDPR (bezpieczeństwo przetwarzania).

Pliki cookie HttpOnly

Plik cookie z atrybutem HttpOnly nie może być odczytany przez JavaScript za pośrednictwem document.cookie. Jest wysyłany wyłącznie wraz z żądaniami HTTP do serwera.

Set-Cookie: session_id=abc123; HttpOnly

To kluczowy środek bezpieczeństwa. Ataki typu cross-site scripting (XSS) często próbują wykraść pliki cookie poprzez wstrzyknięcie kodu JavaScript odczytującego document.cookie. Flaga HttpOnly całkowicie eliminuje ten wektor ataku.

Sesyjne pliki cookie oraz pliki cookie uwierzytelniające powinny niemal zawsze być oznaczone jako HttpOnly. Pliki cookie, które muszą być odczytywane przez JavaScript po stronie klienta (np. pliki cookie preferencji wpływające na interfejs użytkownika), nie mogą być oznaczone jako HttpOnly.

Pliki cookie SameSite

Atrybut SameSite kontroluje, czy plik cookie jest wysyłany wraz z żądaniami międzywitrynowymi. Został wprowadzony w celu ograniczenia ataków typu cross-site request forgery (CSRF) oraz zapewnienia witrynom większej kontroli nad zachowaniem plików cookie w kontekście międzywitrynowym.

SameSite=Strict

Plik cookie jest wysyłany wyłącznie z żądaniami pochodzącymi z tej samej witryny. Jeśli użytkownik kliknie na other.com link prowadzący do your-site.com, plik cookie nie zostanie wysłany wraz z tym początkowym żądaniem.

To najbezpieczniejsze ustawienie, ale może zakłócać prawidłowe działanie funkcji. Na przykład, jeśli użytkownik kliknie link do Twojej witryny z wiadomości e-mail, jego sesyjny plik cookie nie zostanie wysłany, przez co będzie wyglądał na wylogowanego.

SameSite=Lax

Plik cookie jest wysyłany przy nawigacjach najwyższego poziomu (kliknięcie linku), ale nie przy międzywitrynowych żądaniach podrzędnych (ładowanie obrazów, ramek lub wykonywanie żądań AJAX z innej witryny). To ustawienie domyślne w nowoczesnych przeglądarkach, jeśli nie określono atrybutu SameSite.

Lax zapewnia rozsądny kompromis między bezpieczeństwem a użytecznością. Zapobiega wywoływaniu przez witryny zewnętrzne uwierzytelnionych działań na Twojej witrynie, jednocześnie umożliwiając prawidłowe działanie zwykłej nawigacji za pomocą linków.

SameSite=None

Plik cookie jest wysyłany ze wszystkimi żądaniami, w tym z żądaniami międzywitrynowymi. Jest to niezbędne do działania zewnętrznych plików cookie. Plik cookie ustawiony z SameSite=None musi również posiadać atrybut Secure.

Set-Cookie: tracking_id=xyz; SameSite=None; Secure

Każdy plik cookie, który musi działać w kontekście międzywitrynowym (osadzone widżety, uwierzytelnianie zewnętrzne, śledzenie międzywitrynowe), musi używać SameSite=None. Ma to coraz większe znaczenie w miarę zaostrzania przez przeglądarki domyślnych zasad dotyczących plików cookie.

Zombie cookies i supercookies

Warto o nich wspomnieć, ponieważ stanowią próby obejścia mechanizmów ochrony prywatności:

  • Zombie cookies to pliki cookie, które odtwarzają się po usunięciu. Zazwyczaj działają poprzez przechowywanie tego samego identyfikatora w wielu mechanizmach pamięci (pliki cookie, localStorage, IndexedDB, obiekty Flash LSO) i wykorzystanie tego, który przetrwa, do odtworzenia pozostałych. Praktyka ta jest powszechnie uznawana za wprowadzającą w błąd i była przedmiotem działań organów regulacyjnych.
  • Supercookies to mechanizmy śledzenia działające na poziomie niższym niż zwykłe pliki cookie — takie jak wstrzykiwanie nagłówków na poziomie dostawcy internetu (UIDH firmy Verizon) czy identyfikacja oparta na HSTS. Są niezwykle trudne do kontrolowania lub usunięcia przez użytkowników.

Zarówno zombie cookies, jak i supercookies są ewidentnie niezgodne z wymogami GDPR i ePrivacy. Ich stosowanie stanowiłoby naruszenie zasad przejrzystości, zgodności z prawem oraz minimalizacji danych.

Tabela porównawcza

Rodzaj Okres życia Zakres Czy zgoda jest zazwyczaj wymagana? Kluczowe zastosowania
Sesyjne Tylko sesja przeglądarki Własne Tylko jeśli nie są niezbędne Stan zalogowania, koszyk, tokeny CSRF
Trwałe (własne) Od dni do lat Własne Zazwyczaj tak Preferencje, analityka, „zapamiętaj mnie”
Trwałe (zewnętrzne) Od dni do lat Międzywitrynowe Niemal zawsze tak Reklama, retargeting, widżety społecznościowe
Secure Różnie Tylko HTTPS Zależy od celu Każdy wrażliwy plik cookie
HttpOnly Różnie Tylko po stronie serwera Zależy od celu Identyfikatory sesji, tokeny uwierzytelniające
SameSite=Strict Różnie Tylko ta sama witryna Zależy od celu Operacje wrażliwe na CSRF
SameSite=Lax Różnie Ta sama witryna + nawigacja najwyższego poziomu Zależy od celu Ogólne zarządzanie sesją
SameSite=None Różnie Wszystkie konteksty (wymaga Secure) Niemal zawsze tak Osadzone treści zewnętrzne, uwierzytelnianie międzywitrynowe

Co to oznacza dla zgodności z przepisami

Rodzaj pliku cookie bezpośrednio wpływa na Twoje obowiązki w zakresie zgodności:

  1. Własne sesyjne pliki cookie, które są ściśle niezbędne (sesje logowania, koszyki zakupowe, tokeny CSRF), są zwolnione z wymogu zgody na mocy art. 5 ust. 3 ePrivacy.
  2. Własne trwałe pliki cookie służące do analityki, preferencji lub funkcjonalności zazwyczaj wymagają zgody — choć niektóre organy ochrony danych dopuszczają ograniczone wyjątki dla analityki własnej pod określonymi warunkami.
  3. Zewnętrzne pliki cookie każdego rodzaju niemal zawsze wymagają wyraźnej uprzedniej zgody. Istnieje bardzo niewiele uzasadnionych wyjątków.
  4. Atrybuty bezpieczeństwa (Secure, HttpOnly, SameSite) nie zmieniają wymogów dotyczących zgody, ale ich stosowanie świadczy o dobrej praktyce w zakresie bezpieczeństwa — co samo w sobie jest wymogiem GDPR.

Dokładna wiedza o tym, jakie pliki cookie ustawia Twoja witryna — oraz jakiego rodzaju jest każdy z nich — stanowi fundament każdego programu zgodności. Skaner Passiro automatycznie identyfikuje i klasyfikuje każdy plik cookie na Twojej witrynie, w tym zewnętrzne pliki cookie ustawiane przez osadzone skrypty, o których możesz nawet nie wiedzieć.

Skoro rozumiemy już rodzaje plików cookie, przyjrzyjmy się temu, jak są one porządkowane w kategorie zgody — system klasyfikacji określający sposób ich wyświetlania w banerze cookie.

Czy Twoja strona jest zgodna z przepisami o cookies?

Przeskanuj swoją stronę za darmo i znajdź wszystkie cookies w kilka minut.

Przeskanuj cookies za darmo