Jak działają Pliki cookie i sesje?

Staram się zrozumieć Pliki cookie i sesje profesjonalnie, Wiem, że gdy przeglądarka wchodzi na serwer serwer "poproś" przeglądarkę, aby "wkleiła" mu ciasteczko z "phpsessid" w folderze cookies przeglądarki klienta, Teraz, gdy mamy" phpsessid", gdy klient wchodzi na serwer, przeglądarka wysyła na serwer "phpsessid", a serwer rzuca okiem na jego folder tmp i jeśli mamy dopasowanie, to ładuje z powrotem wszystkie dane, które ma dla tego klienta, ale jestem trochę zdezorientowany z wszystkimi tymi danymi. proces.

Będę wdzięczny, jeśli ktoś może mi pomóc zrozumieć procesy tworzenia sesji i plików cookie (co się dzieje "za kulisami"). Dziękuję wszystkim.

Author: Madara Uchiha, 2012-06-21

1 answers

Przejdźmy przez to:

Cookies oraz sesje są oba sposoby zachowania stanu aplikacji pomiędzy różnymi żądaniami przeglądarki. To dzięki nim, na przykład, nie musisz się logować za każdym razem, gdy poprosisz o stronę na StackOverflow.

Ciasteczka

Pliki cookie to małe bity danych (maksymalnie 4KB długości), które przechowują dane w parach klucz=wartość:
name=value; name2=value2

Są to przez JavaScript, lub za pośrednictwem serwera za pomocą nagłówek HTTP.

Pliki cookie mają ustawioną datę wygaśnięcia, przykład używając nagłówków HTTP:

Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT

Co spowoduje, że przeglądarka ustawi plik cookie o nazwie {[2] } 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 należy zawsze sprawdzać poprawność danych cookie. Nie. Załóżmy, że to, co otrzymujesz z pliku cookie, jest koniecznie tym, czego oczekujesz.

Pliki cookie są zwykle używane do zachowania stanu logowania, gdzie nazwa użytkownika i specjalny hash 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 w sesjach tworzenia.

Sesje

Sesje są nieco inne. Każdy użytkownik otrzymuje identyfikator sesji , który jest wysyłany z powrotem do serwera w celu weryfikacji przez cookie lub przez GET variable .

Sesje są zwykle krótkotrwałe, co czyni je idealnymi w zapisywaniu stanu tymczasowego między aplikacjami. Sesje wygasają również 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)
  1. Serwer ustawia sesję zmienna.
  2. strona zmiany klienta
  3. klient wysyła wszystkie pliki cookie wraz z identyfikatorem sesji z kroku 1.
  4. Serwer odczytuje identyfikator sesji z pliku cookie.
  5. Serwer dopasowuje identyfikator sesji z listy w bazie danych (lub pamięci itp.).
  6. serwer znajduje dopasowanie, odczytuje zmienne, które są teraz dostępne na $_SESSION superglobal.

Jeśli PHP nie znajdzie dopasowania, rozpocznie nową sesję i powtórzy kroki od 1-7.

Możesz przechowywać wrażliwe informacje o sesji, ponieważ są przechowywane na serwerze, ale należy pamiętać, że identyfikator sesji może zostać skradziony, jeśli użytkownik, powiedzmy, zalogował się przez niezabezpieczone WiFi. (Atakujący może powąchać pliki cookie i ustawić je jako własne, nie zobaczy samych zmiennych, ale serwer zidentyfikuje atakującego jako użytkownika).


W tym tkwi sedno sprawy. Możesz dowiedzieć się więcej na temat podręcznika PHP na oba tematy.
 99
Author: Madara Uchiha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-23 11:37:22