take two.

Corso gratuito · Utenti iscritti · Lezione 5 / 10

Autenticazione, sessioni e ruoli

Implementare registrazione e login, poi provare che un lettore non possa pubblicare.

45 minuti, pratica inclusaTutti i corsi

Redazione: Take Two · Pubblicato

Anteprima della lezione

Autenticazione e autorizzazione

Il login risponde a “chi sei?”. Il controllo del ruolo risponde a “puoi fare questa operazione?”. Il progetto rilegge il ruolo dal database e lo verifica sul server nelle rotte /edit e /save. Nascondere un pulsante è utile per l’interfaccia, ma non impedisce una richiesta costruita a mano. La registrazione ignora qualsiasi role ricevuto dalla form e crea sempre un member.

Password e ciclo di sessione

Il database conserva un hash prodotto da password_hash; password_verify controlla il login. Il riferimento usa Argon2id quando disponibile e il default PHP altrimenti. Limita la password a 12–72 byte per non ignorare suffissi nell’eventuale fallback bcrypt. Dopo il login rigenera l’ID di sessione e il token CSRF. I cookie sono HttpOnly e SameSite=Lax, Secure su HTTPS; l’inattività di un’ora richiede un nuovo login.

Cosa controllare nella pratica

  • Registrazione non assegna ruoli privilegiati.
  • POST non autorizzati o senza token: 403.
  • Logout solo POST; sessione ruotata al login.

Continua con la lezione completa

Iscriviti gratis per accedere alla spiegazione completa, agli esempi, all’esercizio e alla soluzione commentata. Questa anteprima resta aperta a tutti.

Materiali del laboratorio · Versione 1

Il progetto di riferimento

Scarica il blog completo, con istruzioni in italiano e inglese, schema SQL, contratti per gli agenti, fixture inventate e test. L’interfaccia del blog di esempio è in inglese. Il codice è un laboratorio locale: recupero password, verifica email e MFA sono evoluzioni da affrontare prima di aprirlo a una community pubblica.

Scarica il progetto blog (ZIP) →

Download gratuito. Le lezioni complete richiedono un account Take Two gratuito. L’accesso a Codex dipende dal tuo piano.

Fonti e approfondimenti