Logo David Burdelak
Słownik · Cyberbezpieczeństwo

Co to jest HttpOnly?

Ostatnia aktualizacja:

HttpOnly to flaga ciasteczka, która blokuje dostęp do niego ze skryptów JavaScript działających na stronie. Ciasteczko jest nadal wysyłane z żądaniami HTTP, ale kod pobierany przez document.cookie go nie zobaczy, co utrudnia kradzież identyfikatora sesji w ataku XSS.

Jak ustawić HttpOnly?

Flagę dodaje serwer w nagłówku Set-Cookie, np. Set-Cookie: sesja=abc123; HttpOnly; Secure; SameSite=Lax. W PHP służy do tego parametr httponly w funkcji setcookie lub ustawienie session.cookie_httponly.

Co daje, a czego nie?

Ogranicza skutki XSS dla sesji, bo skrypt atakującego nie odczyta ciasteczka. Nie zatrzyma jednak innych działań takiego skryptu, np. wysyłania żądań w imieniu użytkownika, dlatego nie zastępuje usuwania samej luki XSS.

Kiedy nie stosować?

Gdy JavaScript musi odczytać wartość ciasteczka, na przykład do preferencji interfejsu. Dla ciasteczek uwierzytelniających flaga powinna być zawsze włączona.

Przykład w PHP

Ustawienie flagi w kodzie: setcookie('sesja', $wartosc, ['httponly' => true, 'secure' => true, 'samesite' => 'Lax']). Dla sesji PHP użyj session.cookie_httponly = 1 w konfiguracji. Sprawdzisz efekt w narzędziach deweloperskich: ciasteczko z flagą ma zaznaczone pole HttpOnly, a próba odczytu przez document.cookie go nie zwróci.

Ochrona ta ma sens tylko przy prawidłowo działającym szyfrowaniu, bez błędów certyfikatu SSL i mixed content.

Zobacz w praktyce

Powiązane pojęcia

Wszystkie hasła z kategorii Cyberbezpieczeństwo