KWALIFIKACJA INF3 - CZERWIEC 2017

PYTANIE NR 35.
W języku PHP zapisano fragment kodu. Plik cookie stworzony tym poleceniem
Ilustracja przedstawia fragment kodu w języku PHP, który dotyczy tworzenia pliku cookie.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Cookie jest zapisywane w przeglądarce użytkownika, a nie "na serwerze". O tym, kiedy zostanie usunięte, decyduje ustawiony czas wygaśnięcia (np. bieżący czas + 86400 sekund). Taki zapis oznacza ważność przez jedną dobę od utworzenia, więc po tym czasie przeglądarka powinna je skasować.

Pełne wyjaśnienie:

W PHP plik cookie tworzy się najczęściej funkcją setcookie, w której podaje się m.in. nazwę, wartość oraz parametr określający czas wygaśnięcia. Kluczowa zasada: cookie jest przechowywane po stronie klienta, czyli w przeglądarce użytkownika. Serwer jedynie wysyła do przeglądarki nagłówek HTTP ustawiający cookie, a później przeglądarka odsyła je w kolejnych żądaniach.

Jeżeli w kodzie ustawiono wygaśnięcie jako aktualny czas + jedna doba (typowo 24 godziny, czyli 86400 sekund), to cookie będzie ważne przez jeden dzień od momentu utworzenia. Po upływie tego czasu przeglądarka powinna je usunąć lub przestać wysyłać do serwera.

Dlaczego pozostałe odpowiedzi są błędne?

  • Stwierdzenia o tym, że cookie "będzie przechowywane na serwerze", są niepoprawne w sensie technicznym: klasyczne cookies HTTP trzyma przeglądarka. Na serwerze mogą być przechowywane dane sesji lub logiki powiązane z identyfikatorem z cookie, ale samo cookie nie jest tam magazynowane jako mechanizm przeglądarkowy.
  • Odpowiedzi mówiące o "jednej godzinie" byłyby prawdziwe tylko wtedy, gdyby czas wygaśnięcia ustawiono na około 3600 sekund (lub odpowiadającą temu datę). Jeśli kod wskazuje na dobę, to godzina nie pasuje do parametru wygaśnięcia.

Wskazówka egzaminacyjna: zawsze rozdzielaj miejsce przechowywania (przeglądarka) od czasu życia (Expires/Max-Age). Gdy widzisz przeliczenia sekund (np. 60*60*24), przelicz je na godziny i dni, zanim wybierzesz odpowiedź.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Cookie to mała para danych (np. identyfikator, preferencje), którą serwer ustawia w przeglądarce przez nagłówek HTTP. Przechowywane jest w przeglądarce (po stronie klienta), a przeglądarka dołącza je później do kolejnych żądań do tej samej domeny.
W PHP czas życia cookie wynika z parametru wygaśnięcia w setcookie. Gdy ustawisz czas na "teraz + N sekund", przeglądarka uzna cookie za ważne przez ten okres. Po wygaśnięciu przestaje je wysyłać i zwykle usuwa je z pamięci.
Cookie HTTP to mechanizm przeglądarki, więc fizycznie zapisuje się w przeglądarce użytkownika. Serwer może przechowywać dane powiązane (np. sesję) i rozpoznawać użytkownika po wartości cookie, ale samo cookie nie jest standardowo "magazynowane na serwerze".
Cookie sesyjne zwykle nie ma ustawionego wygaśnięcia i znika po zamknięciu przeglądarki (zależnie od ustawień). Cookie trwałe ma ustawione Expires/Max-Age, więc pozostaje zapisane do określonej daty/czasu. Na egzaminie szukaj w kodzie parametru wygaśnięcia.
Zapamiętaj proste przeliczenia: 3600 sekund to 1 godzina (60×60), a 86400 sekund to 1 doba (24×3600). W zadaniach z PHP często spotyka się zapis 60*60*24. Błąd w przeliczeniu jednostek to jedna z najczęstszych pułapek.
Tak. Użytkownik może ręcznie wyczyścić dane przeglądarki, przeglądarka może usuwać cookies w trybie prywatnym lub przy ustawieniach ograniczających zapisywanie danych, a polityki prywatności/rozszerzenia mogą blokować część cookies. Na egzaminie jednak przyjmuje się standardowe działanie zgodne z ustawionym wygaśnięciem.
Najczęściej sprawdzane atrybuty to HttpOnly (utrudnia odczyt przez JS), Secure (wysyłka tylko po HTTPS) oraz SameSite (ogranicza wysyłanie w żądaniach cross-site). Ustawianie tych atrybutów zmniejsza ryzyko kradzieży sesji i CSRF.
Na jeden dzień często ustawia się cookies związane z krótkotrwałymi preferencjami lub ograniczonym "zapamiętaniem" użytkownika, np. tymczasowe ustawienia interfejsu, zgody, komunikaty "nie pokazuj dziś ponownie". Dłuższy czas bywa używany dla wygody, ale wymaga ostrożności.
W narzędziach deweloperskich (zakładka Application/Storage) można podejrzeć listę cookies dla domeny, ich wartości oraz datę wygaśnięcia. To dobre ćwiczenie przed egzaminem: ustaw cookie w PHP i zweryfikuj, czy przeglądarka pokazuje oczekiwany Expires/Max-Age.
Najczęstsze pomyłki to: utożsamianie cookies z danymi przechowywanymi na serwerze, błędne przeliczenie sekund na godziny/dni, pomijanie faktu, że ustawienie cookie wymaga wysłania nagłówka (czyli przed wygenerowaniem treści), oraz nieuwzględnianie różnicy między sesją a cookie trwałym.
info

To pytanie poprawnie rozwiązuje 65% zdających egzamin. średnie

Według specjalistów z branży: "Cookie jest zapisywane w przeglądarce użytkownika, a nie "na serwerze"."

Źródła:

  • PHP Manual: setcookie — https://www.php.net/manual/en/function.setcookie.php (accessed 2026-02-27)
  • RFC 6265: HTTP State Management Mechanism — https://www.rfc-editor.org/rfc/rfc6265 (accessed 2026-02-27)
  • OWASP Cheat Sheet Series: Session Management Cheat Sheet (Cookies attributes and handling) — https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html (accessed 2026-02-27)

Materiały:

  • Dokumentacja PHP: opis funkcji setcookie i parametrów
  • Materiały o HTTP cookies (atrybuty Expires/Max-Age, Secure, HttpOnly, SameSite)
  • OWASP Cheat Sheet: wskazówki dot. bezpiecznych cookies

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego