Nuovo corso SymfonyCasts: Symfony Security
Autenticazione, autorizzazione, ruoli, voter, firewall... dentro il sistema di Security di Symfony succedono molte cose. Ma una volta capito come i pezzi si incastrano tra loro, ti ritrovi davanti a un sistema potente e flessibile per rispondere a due domande fondamentali: chi è questo utente e cosa gli è consentito fare?
Siamo felici di annunciare il nostro nuovo corso SymfonyCasts:
In questo corso partiamo da zero e costruiamo un sistema di sicurezza completo. Creeremo la nostra classe User, costruiremo i form di login e registrazione, faremo l'hash delle password, aggiungeremo il "remember me", proteggeremo le pagine con i ruoli ed esploreremo come funziona l'autenticazione dietro le quinte.
Poi passeremo all'autorizzazione: access control, gerarchie dei ruoli, voter, impersonificazione e tutti gli strumenti che Symfony ci mette a disposizione per decidere se un utente può eseguire una determinata azione.
Il corso usa Symfony 8, ma tutto quello che trattiamo funziona anche con Symfony 7.
Cosa copre questo corso
Partiamo dalle basi e costruiamo gradualmente un vero sistema di autenticazione e autorizzazione.
Alcuni degli argomenti principali:
- Installare e configurare Symfony Security
- Creare la classe
Usere lo user provider - Costruire un form di login
- Capire l'hashing delle password e l'aggiornamento automatico delle password
- Accedere all'utente autenticato
- Proteggere il logout con CSRF
- Aggiungere l'autenticazione "remember me"
- Capire gli attributi di autenticazione di Symfony
- Creare e utilizzare i ruoli
- Configurare la gerarchia dei ruoli e
access_control - Recuperare l'utente corrente da controller e servizi
- Creare voter personalizzati per i permessi a livello di oggetto
- Impersonare gli utenti con
switch_user - Rilevare e uscire dall'impersonificazione
- Limitare i tentativi di login con il Rate Limiter
- Ascoltare gli eventi di sicurezza
- Costruire un form di registrazione
L'obiettivo non è semplicemente far funzionare un form di login. Alla fine del corso capirai i componenti fondamentali di Symfony Security e come collaborano per autenticare gli utenti e controllare cosa possono fare.
A chi è rivolto?
Questo corso è perfetto se:
- Sei nuovo a Symfony Security e vuoi una base solida
- Hai già costruito sistemi di login, ma vuoi capire cosa succede sotto il cofano
- Vuoi capire meglio la differenza tra autenticazione e autorizzazione
- Devi proteggere la tua applicazione con ruoli, access control e voter
- Vuoi comprendere funzionalità come remember me, impersonificazione e throttling del login
La sicurezza non deve sembrare qualcosa di misterioso. Una volta capiti i concetti fondamentali, Symfony ti dà molto potere senza richiedere poi tanto codice.
Nel caso te lo fossi perso...
Abbiamo anche sperimentato un approccio nuovo e piuttosto interessante ai test end-to-end: usare un browser reale con Symfony, ma senza avviare un web server.
- Playwright-PHP cambia le regole del testing su Symfony - scopri come Playwright-PHP può passare le richieste del browser direttamente al kernel di Symfony, offrendoti vero JavaScript insieme all'accesso al container, alle eccezioni PHP, ai rollback del database e ai test in parallelo.
E sì, ne stiamo facendo un corso!
Cosa arriva prossimamente su SymfonyCasts?
Vuoi portare Symfony Security ancora più in là? È esattamente la direzione che prenderemo:
- Symfony Security: Going Further - costruisci sulle basi con la sudo mode, flussi di login più intelligenti, voter personalizzati, impersonificazione più sicura, controlli sulle password compromesse, rate limiting e altro ancora.
E dopo la sicurezza ci dedicheremo ai test:
- E2E Testing - useremo l'approccio Playwright-PHP visto sopra per testare flussi utente completi in un browser reale con JavaScript reale, mantenendo tutti i vantaggi dei test eseguiti direttamente contro il kernel di Symfony.
Resta sintonizzato: ci sono ancora molte chicche su Symfony Security e sul testing in arrivo!
Altri articoli recenti
Laravel AI 1.1 e 1.2: Agent Skills, Cohere e structured output più solidi
Le release 1.1.0 e 1.2.0 di laravel/ai portano gli Agent Skills, l'approvazione obbligatoria per i tool built-in e nuovi provider come Cohere e Laya self-hosted. Sul fronte qualità arrivano i fix allo structured output per Bedrock e il supporto alle provider options. Aggiornati anche i modelli di default, con Claude 4.7+ che ignora i sampling params.
Laravel 13.35.0: scheduler più controllabile, code più flessibili e response Markdown
Laravel 13.35.0 porta Schedule::alwaysOnOneServer(), il supporto a schedule:interrupt per i comandi di lunga durata, --memory in percentuale per queue:work e il nuovo metodo markdown() sulla response factory. Tante piccole migliorie anche a test, view compilate in parallelo e dischi local.
BashBox: un interprete Bash in sandbox per agenti AI in PHP
BashBox è un interprete bash scritto in puro PHP che permette di eseguire gli script generati dagli agenti AI senza mai ricorrere a proc_open, exec o shell_exec. Ogni comando è una classe PHP che lavora su un filesystem virtuale, con limiti di esecuzione, quote disco e accesso di rete configurabili. Ideale per chi sviluppa agenti con il Laravel AI SDK o altre librerie simili.