I cookie dello stesso sito rappresentano un importante meccanismo di sicurezza che può essere utilizzato per mitigare gli attacchi CSRF (Cross-Site Request Forgery) nelle applicazioni web. Gli attacchi CSRF si verificano quando un utente malintenzionato induce con l'inganno una vittima a eseguire un'azione non intenzionale su un sito Web sul quale la vittima è autenticata. Sfruttando la sessione della vittima, l'aggressore può eseguire azioni per conto della vittima senza il suo consenso.
I cookie dello stesso sito aiutano a prevenire gli attacchi CSRF limitando l'ambito dei cookie alla stessa origine. Un'origine è definita dalla combinazione di protocollo (ad esempio, HTTP o HTTPS), dominio e numero di porta. Quando un cookie è impostato con l'attributo "SameSite", specifica se il cookie deve essere inviato nelle richieste intersito.
Esistono tre valori possibili per l'attributo "SameSite":
1. "Strict": Quando l'attributo "SameSite" è impostato su "Strict", il cookie viene inviato solo nelle richieste provenienti dallo stesso sito. Ciò significa che il cookie non verrà inviato nelle richieste tra siti, prevenendo efficacemente gli attacchi CSRF. Ad esempio, se un utente è autenticato su "example.com" e visita un sito dannoso che tenta di eseguire un attacco CSRF, il browser non includerà il cookie "Strict" dello stesso sito nella richiesta, impedendo così l'attacco.
2. "Lax": quando l'attributo "SameSite" è impostato su "Lax", il cookie viene inviato in richieste intersito considerate sicure, come quando la richiesta viene attivata da una navigazione di primo livello da parte dell'utente. Tuttavia, il cookie non viene inviato nelle richieste avviate da siti Web di terze parti, ad esempio quando un tag immagine o script viene caricato da un altro dominio. Ciò fornisce un equilibrio tra sicurezza e usabilità. Ad esempio, un utente che visita un sito dannoso tramite un collegamento non attiverà un attacco CSRF perché il cookie "Lax" dello stesso sito non verrà incluso nella richiesta.
3. "None": quando l'attributo "SameSite" è impostato su "None", il cookie viene inviato in tutte le richieste intersito, indipendentemente dalla loro origine. Tuttavia, per garantire la sicurezza dell'utilizzo di "Nessuno", il cookie deve essere contrassegnato anche come "Sicuro", il che significa che verrà inviato solo tramite connessioni HTTPS. Questa combinazione consente alle applicazioni Web di supportare funzionalità intersito pur continuando a proteggere dagli attacchi CSRF. Va notato che il valore "None" dovrebbe essere utilizzato solo quando necessario, poiché aumenta la superficie di attacco e il potenziale di vulnerabilità CSRF.
Per illustrare l'utilizzo dei cookie dello stesso sito per mitigare gli attacchi CSRF, si consideri il seguente scenario: un sito web bancario che consente agli utenti di trasferire fondi. Senza i cookie dello stesso sito, un utente malintenzionato potrebbe creare un sito Web dannoso che include un modulo nascosto che invia automaticamente una richiesta di trasferimento di fondi al sito Web della banca quando viene visitato da un utente autenticato. Se il browser dell'utente include il cookie di sessione nella richiesta, il trasferimento verrà eseguito senza il consenso dell'utente. Tuttavia, impostando il cookie di sessione come cookie dello stesso sito con l'attributo "Strict", il browser non includerà il cookie nella richiesta intersito, prevenendo di fatto l'attacco CSRF.
I cookie dello stesso sito rappresentano un prezioso meccanismo di sicurezza per mitigare gli attacchi CSRF nelle applicazioni web. Restringendo l'ambito dei cookie alla stessa origine, questi cookie impediscono agli aggressori di sfruttare la sessione di un utente per eseguire azioni non autorizzate. Il valore "Strict" garantisce che i cookie vengano inviati solo in richieste provenienti dallo stesso sito, mentre il valore "Lax" consente di inviare cookie in richieste intersito sicure. Il valore "None", combinato con l'attributo "Secure", abilita la funzionalità intersito pur continuando a proteggere dagli attacchi CSRF.
Altre domande e risposte recenti riguardanti Concetti fondamentali sulla sicurezza delle applicazioni Web EITC/IS/WASF:
- L'implementazione di Do Not Track (DNT) nei browser Web protegge dalle impronte digitali?
- HTTP Strict Transport Security (HSTS) aiuta a proteggere dagli attacchi di downgrade del protocollo?
- Come funziona l'attacco di rebinding DNS?
- Gli attacchi XSS archiviati si verificano quando uno script dannoso viene incluso in una richiesta a un'applicazione Web e quindi rinviato all'utente?
- Il protocollo SSL/TLS viene utilizzato per stabilire una connessione crittografata in HTTPS?
- Cosa sono le intestazioni delle richieste di metadati di recupero e come possono essere utilizzate per distinguere tra la stessa origine e le richieste tra siti?
- In che modo i tipi attendibili riducono la superficie di attacco delle applicazioni Web e semplificano le revisioni della sicurezza?
- Qual è lo scopo della politica predefinita nei tipi attendibili e come può essere utilizzata per identificare le assegnazioni di stringhe non sicure?
- Qual è il processo per la creazione di un oggetto di tipi attendibili utilizzando l'API dei tipi attendibili?
- In che modo la direttiva sui tipi attendibili in una politica di sicurezza dei contenuti aiuta a mitigare le vulnerabilità XSS (cross-site scripting) basate su DOM?
Visualizza altre domande e risposte in EITC/IS/WASF Web Applications Security Fundamentals
Altre domande e risposte:
- Settore: Cybersecurity
- programma: Concetti fondamentali sulla sicurezza delle applicazioni Web EITC/IS/WASF (vai al programma di certificazione)
- Lezione: Sicurezza del server (vai alla lezione correlata)
- Argomento: Sicurezza del server: pratiche di codifica sicure (vai all'argomento correlato)
- Revisione d'esame

