Ciasteczka

Ciasteczka to niewielkie pliki tekstowe zapisywane w przeglądarce użytkownika przez odwiedzane strony internetowe. Służą do przechowywania informacji, takich jak preferencje użytkownika, status logowania czy dane potrzebne do personalizacji treści. Dzięki nim witryny mogą „pamiętać” użytkownika i dostosowywać swoje działanie do jego potrzeb.

W kontekście cyberbezpieczeństwa i testów aplikacji ciasteczka mogą przechowywać dane wrażliwe (np. tokeny sesji), a ich niewłaściwe zabezpieczenie może prowadzić do ataków, takich jak Session Hijacking czy Cross-Site Scripting (XSS).

Rodzaje ciasteczek

  • Ciasteczka sesyjne (Session Cookies) — przechowywane tylko do momentu zamknięcia przeglądarki. Przykład: koszyk w sklepie internetowym działający tylko w czasie trwania sesji.
  • Ciasteczka trwałe (Persistent Cookies) — zapisane na dysku, z określoną datą wygaśnięcia. Pozostają aktywne po zamknięciu przeglądarki. Przykład: zapamiętanie danych logowania między wizytami.
  • Ciasteczka pierwszej strony (First-party Cookies) — ustawiane bezpośrednio przez odwiedzaną witrynę, np. do zapamiętywania ustawień języka.
  • Ciasteczka stron trzecich (Third-party Cookies) — ustawiane przez inne domeny niż odwiedzana, często wykorzystywane w reklamie i śledzeniu aktywności.

Architektura i bezpieczeństwo ciasteczek

Ciasteczko składa się z pary klucz–wartość oraz metadanych takich jak:

  • Domain i Path — określają, dla jakiej domeny i ścieżki ciasteczko jest ważne.
  • Secure — ciasteczko jest przesyłane tylko przez połączenie HTTPS.
  • HttpOnly — ciasteczko nie jest dostępne z poziomu JavaScript (chroni przed XSS).
  • SameSite — ogranicza wysyłanie ciasteczek tylko do żądań z tej samej domeny, co zapobiega atakom CSRF.
  • Expires / Max-Age — określa czas życia ciasteczka.

    Zgodnie z regulacjami takimi jak GDPR (RODO) czy CCPA, strony internetowe muszą:

    1. Informować użytkownika o użyciu ciasteczek.
    2. Uzyskiwać zgodę na ich przechowywanie (szczególnie dla celów reklamowych i analitycznych).
    3. Zapewniać możliwość zarządzania zgodą lub wycofania jej.

Ciasteczka w testach aplikacji

Podczas testowania aplikacji — szczególnie testów bezpieczeństwa — należy:

  • Sprawdzać, czy ciasteczka zawierające dane wrażliwe mają ustawione flagi Secure i HttpOnly.
  • Weryfikować ustawienia SameSite w kontekście ochrony przed CSRF.
  • Analizować, czy dane w ciasteczkach są szyfrowane lub podpisywane, aby zapobiec manipulacjom.
  • Testować zgodność aplikacji z politykami prywatności i wymogami prawnymi.