Analizziamo questo:
I cookie e le sessioni sono entrambi modi per preservare lo stato dell'applicazione tra le diverse richieste effettuate dal browser. È grazie a loro che, ad esempio, non è necessario accedere ogni volta che si richiede una pagina su StackOverflow .
Biscotti
I cookie sono piccoli bit di dati, (lunghezza massima di 4 KB), che contengono dati in una coppia chiave = valore:
name=value
Questi sono impostati da JavaScript o tramite il server utilizzando un'intestazione HTTP .
I cookie hanno un set di data e ora di scadenza, ad esempio utilizzando intestazioni HTTP:
Set-Cookie: name2=value2; Expires=Wed, 19 Jun 2021 10:18:14 GMT
Ciò indurrebbe il browser a impostare un cookie denominato name2
con un valore di value2
, che scadrà tra circa 9 anni.
I cookie sono considerati altamente insicuri perché l'utente può facilmente manipolare il loro contenuto. Ecco perché dovresti sempre convalidare i dati dei cookie . Non dare per scontato che ciò che ottieni da un cookie sia necessariamente ciò che ti aspetti.
I cookie vengono solitamente utilizzati per preservare lo stato di accesso, in cui un nome utente e un hash speciale vengono inviati dal browser e il server li confronta con il database per approvare l'accesso.
I cookie vengono spesso utilizzati anche nella creazione di sessioni .
Sessioni
Le sessioni sono leggermente diverse. Ogni utente riceve un ID di sessione , che viene rimandato al server per la convalida tramite cookie o dalla variabile GET .
Le sessioni sono generalmente di breve durata, il che le rende ideali per salvare lo stato temporaneo tra le applicazioni. Le sessioni scadono anche quando l'utente chiude il browser.
Le sessioni sono considerate più sicure dei cookie perché le variabili stesse sono conservate sul server . Ecco come funziona:
- Il server apre una sessione (imposta un cookie tramite intestazione HTTP)
- Il server imposta una variabile di sessione.
- Pagina delle modifiche del cliente
- Il client invia tutti i cookie, insieme all'ID di sessione dal passaggio 1.
- Il server legge l'ID di sessione dal cookie.
- Il server corrisponde all'ID di sessione da un elenco in un database (o memoria, ecc.).
- Il server trova una corrispondenza, legge le variabili che ora sono disponibili su
$_SESSION
superglobal.
Se PHP non trova una corrispondenza, avvierà una nuova sessione e ripeterà i passaggi da 1 a 7.
Puoi memorizzare informazioni sensibili su una sessione perché sono conservate sul server, ma tieni presente che l'ID della sessione può ancora essere rubato se l'utente, diciamo, ha effettuato l'accesso tramite un WiFi non sicuro. (Un utente malintenzionato può annusare i cookie e impostarli come propri, non vedrà le variabili stesse, ma il server identificherà l'aggressore come utente).
Questo è il succo. Puoi saperne di più sul manuale PHP su entrambi gli argomenti.