Sessioni in PHP e su Tecnologia RESTful,
Cos’è una sessione (Session) in PHP
Perché serve
HTTP è stateless: ogni richiesta al server è “indipendente”, non ricorda le precedenti.
La sessione serve per mantenere uno stato tra più richieste (es. utente loggato, carrello, preferenze).
Come funziona (idea base)
-
Alla prima richiesta in cui fai
session_start(), PHP:-
crea un ID di sessione (es.
abc123...) -
lo invia al browser in un cookie (di solito
PHPSESSID)
-
crea un ID di sessione (es.
- Nelle richieste successive il browser rimanda quel cookie.
-
PHP usa l’ID per recuperare i dati associati sul server (di default in file in
/tmpo path configurato).
Dove stanno i dati?
I dati della sessione stanno in $_SESSION (superglobale). Esempio tipico:
-
$_SESSION['user_id'] = 5; -
$_SESSION['role'] = 'admin';
Operazioni tipiche
-
Avviare/continuare:
session_start(); -
Leggere/scrivere:
$_SESSION[...] -
Logout pulito: svuotare
$_SESSION, invalidare cookie,session_destroy() - Scadenza: dipende da configurazione (GC e lifetime cookie)
Cose importanti di sicurezza (molto da login)
- Session fixation: dopo login fai
session_regenerate_id(true); - Cookie sicuri:
-
HttpOnly(non leggibile da JS) -
Secure(solo HTTPS) -
SameSite(riduce CSRF)
-
- Non mettere in sessione dati sensibili inutili (password mai).
- Se fai ruoli/permessi, controllali server-side ad ogni pagina protetta.
Cosa sono i Cookie