Bezpieczeństwo ciasteczek
Dla zwiększania bezpieczeństwa danych na stronie powinno się stosować również zabezpieczenia cząsteczek. Są to atrybuty ciasteczek, a nie nagłówki HTTP jak w tym artykule na temat nagłówków.
3 atrybuty i dobre praktyki
Atrybut
Secure
:Atrybut Secure w ciasteczku oznacza, że ciasteczko powinno być wysyłane tylko przez bezpieczne połączenia HTTPS. Jest to ważne zabezpieczenie, ponieważ gwarantuje, że ciasteczko będzie przesyłane tylko w sposób zaszyfrowany, co ogranicza ryzyko przechwycenia danych podczas transmisji. Przykład użycia:
Set-Cookie: nazwa_ciasteczka=wartość; Secure HttpOnly:
Atrybut
HttpOnly
: AtrybutHttpOnly
oznacza, że ciasteczko jest niedostępne dla skryptów JavaScript. Zapobiega to próbom ataków XSS (Cross-Site Scripting), gdzie złośliwy skrypt próbuje odczytać lub modyfikować zawartość ciasteczka za pomocą JavaScript. Przykład użycia:Set-Cookie: nazwa_ciasteczka=wartość; HttpOnly
Wartości te są używane jako atrybuty w nagłówku Set-Cookie, a nie jako osobne nagłówki HTTP. Ich zastosowanie w praktyce pomaga w poprawie bezpieczeństwa przesyłanych danych i ochrony przed atakami.Atrybut
SameSite
Atrybut SameSite pozwala kontrolować, czy ciasteczko powinno być wysyłane w żądaniach "cross-site". Ustawienia SameSite obejmują:Strict
: Ciasteczko jest wysyłane tylko w przypadku żądań pochodzących z tej samej witryny.Lax
: Ciasteczko jest wysyłane w żądaniach GET pochodzących z innych stron (na przykład przy kliknięciu linku), ale nie w żądaniach POST.None
: Ciasteczko jest wysyłane w żądaniach z innych witryn. Wymaga ustawienia atrybutu Secure dla bezpiecznych połączeń HTTPS. Przykład użycia:Set-Cookie: nazwa_ciasteczka=wartość; Secure; HttpOnly; SameSite=Lax
Ograniczone Czasowe Ważność: Ustal krótki okres ważności ciasteczka, zwłaszcza jeśli nie jest ono wymagane na stałe. Krótki czas ważności ogranicza okno potencjalnego nadużycia. Przykład użycia:
Set-Cookie: nazwa_ciasteczka=wartość; Max-Age=3600; Secure; HttpOnly;