I flag dei cookie Secure, HttpOnly e SameSite
I cookie di sessione sono un bersaglio primario. Tre attributi — Secure, HttpOnly e SameSite — determinano se un malintenzionato può rubarli o usarli in modo improprio. I flag mancanti portano direttamente al dirottamento delle sessioni e al CSRF.
Che cos'è
Secure invia il cookie solo tramite HTTPS. HttpOnly lo nasconde a JavaScript (document.cookie). SameSite controlla se viene inviato con le richieste cross-site.
Insieme riducono la superficie d'attacco: un malintenzionato non può leggere il cookie tramite script iniettato, non può intercettarlo su HTTP e non può sfruttarlo da un altro sito.
Perché è importante
Senza HttpOnly, qualsiasi bug XSS può leggere il cookie di sessione e consegnare al malintenzionato una sessione già autenticata. Senza Secure, il cookie trapela con qualsiasi richiesta HTTP in chiaro.
Senza SameSite, il browser allega il cookie alle richieste cross-site, il meccanismo su cui si basano gli attacchi CSRF.
Come risolverlo
La maggior parte dei framework li espone come opzioni quando imposti il cookie.
res.cookie("session", token, {
secure: true,
httpOnly: true,
sameSite: "lax", // or "strict" for maximum protection
path: "/",
});Dare a un cookie il prefisso __Host- obbliga il browser a richiedere Secure, Path=/ e nessun Domain: una base solida e auto-applicata per i cookie di sessione.
Se hai davvero bisogno di cookie cross-site, SameSite=None viene rispettato solo quando è impostato anche Secure; altrimenti i browser moderni scartano il cookie.
FAQ
Lax o Strict per SameSite?
Lax è un valore predefinito sicuro che consente comunque le navigazioni di primo livello. Strict è più restrittivo ma può rompere i flussi in cui gli utenti arrivano da link esterni aspettandosi di essere già connessi.
Questi flag fermano l'XSS?
HttpOnly limita i danni dell'XSS nascondendo il cookie, ma non previene l'XSS. Abbinalo a una robusta Content-Security-Policy.
La tua app è interessata?
AppSafe controlla questo e decine di altri problemi in un'unica scansione gratuita.
Scansiona la mia app gratisGuide correlate
Content-Security-Policy (CSP): cos'è e come aggiungerla
L'header che impedisce l'esecuzione degli script iniettati.
Configurazione CORS errata: le trappole del wildcard e della riflessione
Consenti ogni origine e qualsiasi sito potrà leggere la tua API.
Perché il tuo sito ha bisogno di un redirect HTTP→HTTPS
Non lasciare aperta la porta non sicura.