Przejdźmy przez to:
Pliki cookie i sesje to sposoby na zachowanie stanu aplikacji między różnymi żądaniami wysyłanymi przez przeglądarkę. To dzięki nim na przykład nie musisz się logować za każdym razem, gdy żądasz strony w StackOverflow .
Ciasteczka
Pliki cookie to małe fragmenty danych (o długości maksymalnie 4 KB), które przechowują dane w parach klucz = wartość:
name=value
Są one ustawiane przez JavaScript lub przez serwer przy użyciu nagłówka HTTP .
Pliki cookie mają ustawioną datę ważności, na przykład przy użyciu nagłówków HTTP:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
Co spowodowałoby, że przeglądarka ustawiłaby plik cookie o nazwie name2
o wartości value2
, który wygaśnie za około 9 lat.
Pliki cookie są uważane za wysoce niebezpieczne, ponieważ użytkownik może łatwo manipulować ich zawartością. Dlatego zawsze należy sprawdzać poprawność danych z plików cookie . Nie zakładaj, że to, co otrzymujesz z pliku cookie, jest koniecznie tym, czego oczekujesz.
Pliki cookie są zwykle używane do zachowania stanu logowania, w którym nazwa użytkownika i specjalny skrót są wysyłane z przeglądarki, a serwer sprawdza je w bazie danych, aby zatwierdzić dostęp.
Pliki cookie są również często używane do tworzenia sesji .
Sesje
Sesje są nieco inne. Każdy użytkownik otrzymuje identyfikator sesji , który jest odsyłany z powrotem do serwera w celu weryfikacji przez plik cookie lub zmienną GET .
Sesje są zwykle krótkotrwałe, co czyni je idealnymi do zapisywania stanu tymczasowego między aplikacjami. Sesje wygasają także po zamknięciu przeglądarki przez użytkownika.
Sesje są uważane za bezpieczniejsze niż pliki cookie, ponieważ same zmienne są przechowywane na serwerze . Oto jak to działa:
- Serwer otwiera sesję (ustawia plik cookie przez nagłówek HTTP)
- Serwer ustawia zmienną sesji.
- Strona zmian klienta
- Klient wysyła wszystkie pliki cookie wraz z identyfikatorem sesji z kroku 1.
- Serwer odczytuje identyfikator sesji z pliku cookie.
- Serwer dopasowuje identyfikator sesji z listy w bazie danych (lub pamięci itp.).
- Serwer znajduje dopasowanie, czyta zmienne, które są teraz dostępne w
$_SESSION
superglobalu.
Jeśli PHP nie znajdzie dopasowania, rozpocznie nową sesję i powtórzy kroki od 1 do 7.
Możesz przechowywać poufne informacje w sesji, ponieważ są one przechowywane na serwerze, ale pamiętaj, że identyfikator sesji może nadal zostać skradziony, jeśli użytkownik, powiedzmy, zalogował się przez niezabezpieczone WiFi. (Atakujący może wąchać pliki cookie i ustawić je jako własne, nie zobaczy samych zmiennych, ale serwer zidentyfikuje atakującego jako użytkownika).
To jest istota tego. Możesz dowiedzieć się więcej w podręczniku PHP na oba tematy.