Come funziona X-CSRF-Token?

2

Dopo aver letto questa domanda , se la mia comprensione è corretta, il server invia il token CSRF a valle come cookie. A prima vista, ciò sembrerebbe vanificare lo scopo del token poiché tutti i cookie vengono inviati dal browser anche se la richiesta non è della stessa origine.

Tuttavia, per scriverlo come campo personalizzato, devi prima leggerlo, cosa che puoi fare solo se sei di origine identica. Quindi la richiesta dimostra che proviene dal codice che ha "il diritto di leggere" dal cookie jar, che è diverso dal browser che lo invia per tuo conto.

Ma non sono sicuro di averlo capito correttamente. È così che funziona?

    
posta sashoalm 20.03.2017 - 17:04
fonte

2 risposte

2

Sì, è corretto.

La Stessa politica di origine impedisce ad altri domini di leggere il valore effettivo del cookie .

In un attacco CSRF, il browser invia automaticamente i cookie. Anche se l'utente malintenzionato non può leggere questi cookie, può comunque utilizzarli inviando una richiesta cross-site.

Se richiedi che tutte le richieste con effetti collaterali abbiano un valore verificato che viene inviato al di fuori del meccanismo dei cookie, questo mitiga CSRF perché l'autore dell'attacco non ha modo di saperlo.

    
risposta data 20.03.2017 - 17:18
fonte
4

L'intenzione con l'invio di un'intestazione personalizzata come X-CSRF-Token così come un cookie è che la tecnica, chiamata double submit, mitigherà CSRF se implementata correttamente. Il modo in cui funziona è che mentre i cookie verranno automaticamente inviati con una richiesta forzata come nel caso di CSRF, l'intestazione personalizzata non lo farà, impedendo a un utente malintenzionato di forzare te, la vittima, a non essere attaccato perché il server cercherà entrambi valori. Double submit viene utilizzato nei casi in cui l'applicazione non desideri tenere traccia dello stato di un token anti-CSRF.

    
risposta data 20.03.2017 - 17:31
fonte

Leggi altre domande sui tag