Protezione CSRF utilizzando il token di autenticazione nell'intestazione HTTP? [duplicare]

2

Sto lavorando su un'applicazione web che memorizza un token di autenticazione in un cookie.

L'unica protezione CSRF è il controllo dei referrer.

Sto pensando di migliorare questo spostando il token di autenticazione dai cookie a un'intestazione personalizzata, come X-AuthToken.

L'applicazione è un'applicazione a pagina singola creata usando JavaScript.

Credo che questa dovrebbe essere una solida protezione contro gli attacchi CSRF, perché se un sito malvagio costringe un browser degli utenti a fare un POST HTTP, l'intestazione auth non verrà inclusa e la richiesta non riuscirà.

Il token di autenticazione viene generato per ogni sessione.

Ho ragione che ciò offrirebbe protezione CSRF o mi manca qualcosa?

    
posta John Smith 27.01.2015 - 10:41
fonte

1 risposta

2

Risposta breve : sì, sarebbe sicuro se implementato correttamente (tag abbastanza lunghi, casuali, unici, uno per sessione, ecc.)

Risposta lunga : se decidi di aggiungere un'intestazione personalizzata alle richieste inviate al server utilizzando il codice JavaScript, è simile all'invio di un valore anti-CSRF nei parametri POST (più spesso approccio usato).

POST /test 
Host: www.example.com 
X-AuthToken: unique_random_value

p1=val1&p2=val2

o

POST /test 
Host: www.example.com

p1=val1&p2=val2&x-authtoken=unique_random_value

Quindi spetta a te decidere quale opzione è più facile da implementare, ma entrambe dovrebbero funzionare in modo sicuro.

    
risposta data 27.01.2015 - 13:53
fonte

Leggi altre domande sui tag