Seguretat
Aprèn les funcionalitats de seguretat de Laravel: protecció CSRF, encriptació de dades, hashing de contrasenyes i configuració CORS.
La seguretat no és una funcionalitat que s'afegeix al final d'un projecte: és una propietat que ha d'estar present des de la primera línia de codi. Una aplicació web està exposada constantment a intents d'atac: injeccions SQL, cross-site scripting (XSS), falsificació de peticions (CSRF), robatori de sessions, força bruta contra contrasenyes i molts altres vectors. Un sol error de seguretat pot comprometre les dades de tots els usuaris i destruir la confiança que has construït amb el teu producte.
Laravel entén aquesta realitat i adopta un enfocament de "seguretat per defecte". Això significa que les proteccions més importants estan actives des del moment en què crees un projecte nou, sense necessitat de configurar res. El middleware CSRF protegeix automàticament tots els formularis contra atacs de falsificació. El query builder i Eloquent utilitzen prepared statements per defecte, eliminant les injeccions SQL. El motor de plantilles Blade escapa automàticament tota la sortida HTML, prevenint atacs XSS. Les contrasenyes es guarden amb hash bcrypt, mai en text pla. Les cookies de sessió es signen i xifren perquè no puguin ser manipulades.
Aquesta filosofia té una implicació important: per introduir una vulnerabilitat a una aplicació Laravel, normalment has de fer alguna cosa explícitament insegura, com usar {!! $variable !!} en lloc de {{ $variable }} a Blade, o construir consultes SQL amb concatenació de strings en lloc del query builder. Laravel fa que el camí segur sigui el camí fàcil, i el camí insegur requereixi un esforç conscient.
Però les proteccions automàtiques no ho cobreixen tot. Hi ha aspectes de la seguretat que requereixen decisions actives per part del desenvolupador: quins dominis poden accedir a l'API (CORS), quines dades cal xifrar a la base de dades, com gestionar les claus de xifrat, quin algoritme de hash usar per a les contrasenyes i com configurar les capçaleres de seguretat HTTP. Aquesta secció cobreix tots aquests aspectes, des dels mecanismes que Laravel activa automàticament fins a les configuracions que has de fer manualment.
L'encriptació i el hashing són dos conceptes que sovint es confonen però que serveixen per a propòsits molt diferents. L'encriptació és un procés reversible: xifres una dada amb una clau i la pots desxifrar amb la mateixa clau. S'utilitza per a dades que necessites llegir posteriorment (tokens d'API, dades sensibles dels usuaris). El hashing és un procés irreversible: transformes una dada en un hash que no es pot revertir. S'utilitza per a contrasenyes, perquè no necessites saber la contrasenya original, només verificar si una contrasenya donada coincideix amb el hash guardat.
La protecció CSRF i la configuració CORS són mecanismes que controlen qui pot enviar peticions a la teva aplicació. CSRF protegeix contra peticions fraudulentes fetes des d'altres llocs web que intenten actuar en nom d'un usuari autenticat. CORS defineix quins dominis poden fer peticions a la teva API des d'un navegador. Tots dos són essencials per a qualsevol aplicació web moderna, i Laravel els configura de manera que la majoria de projectes funcionin correctament sense canvis.