Session e Restful in PHP

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)

  1. 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)
  2. Nelle richieste successive il browser rimanda quel cookie.
  3. PHP usa l’ID per recuperare i dati associati sul server (di default in file in /tmp o 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


Dalla stessa categoria