2015-05-29 16 views
5

Dovrei avere una vita breve per il mio token CSRF o posso averlo per ultimo per la durata della sessione?Quanto deve durare la durata di un token CSRF?

+0

se dura la vita della sessione, quindi in caso di furto, è caso essere oggetto di abusi per la vita di quella sessione ... dovrebbe essere una tantum –

+0

No @MarcB. Ciò che rende speciale un token CSRF è che non è un cookie e quindi non viene inviato automaticamente ad ogni richiesta. La durata della sessione va bene. [Questa risposta] (http://stackoverflow.com/a/30539335/721263) qui sotto ha fatto bene. –

+1

Domanda correlata: [Protezione CSRF: dobbiamo generare un token per ogni modulo?] (Http://stackoverflow.com/q/8655817/53114) – Gumbo

risposta

4

Un token CSRF non è un token di accesso e non ha una durata come token al portatore. Sono generati usando le informazioni di sessione.

csrf_token = HMAC(session_token, application_secret)

CSRF aggiunge informazioni supplementari alle vostre richieste che consente al server di verificare le richieste proviene da una posizione autorizzato.

colpisce solo le richieste in cui le informazioni di autorizzazione viene inviato automaticamente dal browser (autenticazione biscotto o di base schema/digest)

+0

Non devono essere correlati alla sessione. Potrebbe essere anche per richiesta. –

+0

Perché la generazione include informazioni sulla sessione? Perché non usare un valore completamente casuale? E sono le informazioni di autenticazione e non le informazioni di autorizzazione. – Gumbo

+0

Sì, mantieni il tuo ID di sessione protetto. Non esporlo inutilmente. – SilverlightFox