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.
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)
- Serwer ustawia sesję zmienna.
- strona zmiany 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, 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.
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