Non
Deve essere pseudo random .
CSRF non è compatibile con attacchi di forza bruta. Considera il vettore di attacco:
- L'utente malintenzionato crea un'e-mail o una pagina Web speciale con HTML che pubblica sul sito di interesse
- L'utente è connesso al sito di interesse e l'ID della sessione viene passato passivamente (è un cookie)
- L'utente viene indotto a fare clic sul link nell'email o nella pagina Web appositamente predisposta
- Link "forgia" la richiesta. Il link non deve contenere l'ID di sessione perché è nel cookie. E non deve passare il token CSRF trovato nell'intestazione (è passato passivamente - è un cookie). Ma deve contenere il token CSRF nel post del modulo.
Non c'è modo che un hacker possa indurre chiunque a fare clic su un link centinaia di volte. Anche se si tratta di uno script che invia un sacco di richieste con un solo clic (supponendo che l'hacker abbia capito come farlo), i browser non consentono richieste AJAX tra domini, quindi probabilmente stiamo parlando di una pagina contenente centinaia di di clear GIFS o qualcos'altro totalmente whacky), non sarà in grado di attraversare un sacco di spazio di ricerca senza ritardi.
Inoltre, non c'è modo per l'attaccante di determinare se l'attacco ha funzionato per un particolare valore-- è un attacco "fuoco e dimentica".
Quindi l'idea che il token CSRF possa essere forzato brutalmente è inverosimile nel migliore dei casi. L'hacker dovrebbe essere personalmente connesso - che è un attacco completamente diverso.
L'unica ragione per cui hai bisogno di qualsiasi entropia è perché gli attacchi CSRF tendono ad essere consegnati via spam. Diciamo che sei un idiota e il tuo token CSRF ha solo 16 bit di entropia e l'hacker ha inviato 65.536 email di spam con lo stesso identico token. 65536/2 ^ 16 = uno di quegli attacchi sarebbe effettivamente successo. Supponendo che lo 0% delle e-mail colpisca i filtri spam, il 100% degli utenti li ha aperti e il 100% degli utenti si è collegato alla tua app nel momento in cui ha fatto clic sul link malvagio.
Oltre a sperare di risucchiare un sacco di utenti, non c'è modo per un hacker di ridimensionare l'attacco abbastanza a sufficienza da considerarlo un attacco di forza bruta con qualsiasi significato.