Cyberpediadi Brain
ITDEENESFR

Il CSRF: l'azione forzata a sua insaputa

Un sito trappola o un messaggio può far agire il suo browser al posto suo su un servizio in cui è connesso. Ecco il meccanismo e le difese.

In 30 secondi

Dove accade
Sulla maggior parte dei servizi web privi di protezione anti-CSRF, quando si apre un link o una pagina trappola nello stesso browser1.
Cosa vuole l'attaccante
Provocare un'azione che modifica qualcosa, come un bonifico o un cambio di password1.
Il riflesso
Disconnettersi da un servizio quando si è finito di usarlo2.
Da dove viene la falla
Dall'applicazione, non dall'utente2.

Di cosa si tratta

Il CSRF (Cross-Site Request Forgery) è un attacco che costringe un utente a eseguire azioni indesiderate su un'applicazione web in cui è già autenticato1. L'attaccante non ha bisogno della password della vittima: fa agire il browser di quest'ultima.

Per un dipendente, lo scenario tipico è semplice. Una casella di posta o un sito bancario è aperto in una scheda. Un link ricevuto via e-mail o via messaggistica istantanea porta a un'altra pagina, e quella pagina avvia, in background, una richiesta verso il servizio rimasto connesso1.

Domande dirette

Il CSRF ruba la mia password?

No, non di per sé. L'attacco usa l'identità e i diritti della vittima per compiere un'azione al suo posto1. Prende di mira le azioni che cambiano lo stato del servizio, come modificare l'indirizzo e-mail o la password, oppure acquistare qualcosa. Costringere la vittima a consultare dei dati non giova all'attaccante, perché la risposta arriva alla vittima, non a lui1.

Perché il servizio obbedisce a una richiesta che non ho voluto?

Perché non riesce a distinguerla da una richiesta legittima. Per la maggior parte dei siti, le richieste del browser includono automaticamente le credenziali associate al sito, come il cookie di sessione1. Se l'utente è autenticato, il sito non ha quindi alcun modo di separare la richiesta contraffatta da quella reale1. Il CWE descrive la debolezza così: l'applicazione non verifica, o non può verificare, che una richiesta sia stata fornita volontariamente dall'utente che l'ha inviata5.

Sono protetto se il servizio usa HTTPS?

No. Secondo OWASP, HTTPS da solo non protegge dal CSRF, anche se resta un prerequisito perché le altre misure siano affidabili1.

Il problema dipende da me o dall'applicazione?

Dall'applicazione. Microsoft lo dice senza giri di parole: le falle CSRF sono fondamentalmente un problema dell'applicazione web, non dell'utente finale2. I gesti dell'utente limitano soltanto l'esposizione: disconnettersi quando si ha finito e svuotare regolarmente i cookie del browser2.

1Nei panni dell'attaccante1 min

L'attaccante comincia individuando una richiesta che modifica qualcosa su un servizio, poi costruisce un indirizzo o uno script che la riproduce con i propri valori. OWASP porta l'esempio di una banca fittizia: la richiesta legittima trasferisce 100 dollari a un beneficiario, e l'attaccante sostituisce il beneficiario con sé stesso aumentando l'importo1.

Resta da far caricare questa richiesta alla vittima mentre è connessa. Si citano due metodi: un'e-mail non richiesta con contenuto HTML, oppure una trappola collocata su pagine che la vittima è probabile visiti mentre usa il suo servizio online1.

L'attacco può anche essere memorizzato sul sito vulnerabile stesso, per esempio in un campo che accetta HTML. Diventa allora più probabile: la vittima consulta più volentieri una pagina del sito che una pagina qualunque di Internet, e vi è necessariamente già connessa1.

2Cosa si vede sullo schermo1 min

Spesso, niente. Il link trappola può essere mascherato da link ordinario, con un testo del tipo «guarda le mie foto». Può anche assumere la forma di una falsa immagine di dimensione zero: se compare in un'e-mail, la vittima non vede nulla, ma il browser invia comunque la richiesta, senza alcun segno visivo che l'operazione sia avvenuta1.

Estratto
Illustrazione neutralizzata, non un indirizzo reale.
Link mascherato: testo visualizzato «Guarda le mie foto», indirizzo nascosto
hxxp://banque[.]exemple[.]invalid/virement?dest=[conto dell'attaccante]&montant=[elevato]
Variante: immagine invisibile in un'e-mail, caricata senza clic.

Se il servizio si aspetta una richiesta di tipo POST, l'attaccante può ospitare sul proprio sito un modulo con campi nascosti. La vittima crede che faccia altro e clicca, oppure uno script lo invia automaticamente al caricamento della pagina1. In entrambi i casi la pagina visualizzata è banale e l'azione si svolge altrove.

3Sotto il cofanoTeam IT2 min

Il meccanismo dipende da un comportamento normale dei browser. Essi memorizzano i cookie emessi da un'applicazione, compresi i cookie di sessione degli utenti autenticati, e inviano tutti i cookie di un dominio a ogni richiesta, qualunque sia il modo in cui quella richiesta è nata nel browser2. I cookie non sono gli unici coinvolti: anche le autenticazioni di tipo Basic e Digest sono vulnerabili, perché il browser rinvia automaticamente le credenziali fino alla fine della sessione2.

Secondo OWASP, diverse idee di difesa non funzionano1:

  • un cookie segreto, poiché tutti i cookie vengono inviati con ogni richiesta;
  • accettare solo richieste POST, poiché basta un modulo nascosto per contraffarne una;
  • le transazioni in più passaggi, finché l'attaccante può prevedere ogni passaggio;
  • la sola verifica dell'intestazione Referer, perché può essere falsificata ed è talvolta assente per ragioni di riservatezza.

Le protezioni raccomandate, lato applicazione, sono le seguenti.

  • Verificare prima se il framework offre già una protezione CSRF, e usarla. In mancanza, aggiungere token anti-CSRF a tutte le richieste che modificano lo stato e validarli lato server3. Senza token, l'attaccante non può costruire una richiesta valida3.
  • Per i software senza stato, usare un cookie a doppio invio, preferibilmente firmato3.
  • Impostare l'attributo SameSite sui cookie di sessione3. Con il valore strict, il browser non invia il cookie nelle richieste tra siti diversi, nemmeno seguendo un link ordinario. Con lax, lo invia per un link seguito da un altro sito ma lo trattiene sui metodi esposti al CSRF come POST4. Con none, non è offerta alcuna protezione4.
  • Controllare l'origine con le intestazioni standard, in particolare Sec-Fetch-Site, supportata da tutti i principali browser da marzo 20233.
  • Non usare richieste GET per operazioni che modificano lo stato3.

Queste misure hanno dei limiti. SameSite=Lax lascia passare le richieste GET di navigazione di primo livello: un punto di accesso che modifica lo stato tramite GET resta vulnerabile2. I browser meno recenti possono non applicare SameSite2. E una falla XSS può aggirare tutte le protezioni anti-CSRF; il worm Samy, per esempio, ha usato una XMLHttpRequest per ottenere il token CSRF e contraffare richieste13. Il comportamento predefinito di SameSite varia: a dicembre 2024, lax era il valore predefinito di Chrome, Edge e Opera, ma di nessuna versione di Firefox né di Safari, da cui il consiglio di impostarlo esplicitamente4.

4AutopsieCasi reali1 min

2008: l'exploit uTorrent

OWASP cita, come esempio reale di attacco CSRF contro un'applicazione che funziona tramite richieste GET, un exploit rivolto a uTorrent risalente al 2008. È stato usato su larga scala per scaricare software dannoso1. La fonte non dice altro: né il numero delle vittime, né il modo di diffusione.

Falle catalogate dal CWE (identificativi dal 2004 al 2009)

Il CWE-352 fornisce un elenco scelto di esempi osservati, che non è esaustivo5. Diversi si basano su un semplice URL in un tag img: CVE-2004-1703 e CVE-2004-1995 permettono di aggiungere account utente, CVE-2004-1842 di ottenere privilegi di amministratore5. Altri riguardano la gestione stessa: CVE-2009-3520 permette di modificare la password dell'amministratore, e CVE-2009-3759 di cambiare password o di arrestare una macchina virtuale da un'interfaccia web5.

Scheda

Identificativo
CP-053
Ala
1. Attacchi e tecniche
Competenza Brain
Capire l'hacking (understand_hacking)
Riflesso Brain
cr-018
Schema
G3 · Sezione anatomica
Lingue
de, en, es, fr, it
Fonti
5 fonti verificate il 3 novembre 2026
Fonti5 fonti
  1. OWASP, «Cross Site Request Forgery (CSRF) | OWASP Foundation». https://community.owasp.org/attacks/csrf (consultato il 3 novembre 2026)
  2. Microsoft, «Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks in ASP.NET Core». https://learn.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-10.0 (consultato il 3 novembre 2026)
  3. OWASP, «Cross-Site Request Forgery Prevention - OWASP Cheat Sheet Series». https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html (consultato il 3 novembre 2026)
  4. OWASP, «SameSite | OWASP Foundation». https://community.owasp.org/SameSite (consultato il 3 novembre 2026)
  5. MITRE, «CWE - CWE-352: Cross-Site Request Forgery (5.0)». https://cwe.mitre.org/data/definitions/352.html (consultato il 3 novembre 2026)

Cita questo articolo

Brain, «Il CSRF: l'azione forzata a sua insaputa», Cyberpedia, 2026. https://startbrain.io/cyberpedia/it/articles/csrf-richiesta-contraffatta-tra-siti/

BibTeX
@misc{brain_cp053_it_2026,
  author = {Brain},
  title = {Il CSRF: l'azione forzata a sua insaputa},
  year = {2026},
  howpublished = {Cyberpedia},
  url = {https://startbrain.io/cyberpedia/it/articles/csrf-richiesta-contraffatta-tra-siti/},
  note = {CC BY 4.0}
}