Sto costruendo un metodo di prevenzione CSRF nel nostro framework applicativo. Io uso, tra l'altro, il sito OWASP .
Abbiamo scelto il meassure di prevenzione "Double Submit Cookies", descritto al OWASP Scheda cheat CSRF
Gli stati del cheat sheet:
When a user authenticates to a site, the site should generate a (cryptographically strong) pseudorandom value...
Sembra che un utente debba effettuare il login per primo, prima di generare il token CSRF (ovvero "valore pseudocasuale crittografato").
Ma come posso proteggere i moduli accessibili senza autenticazione? Pensa alla "password dimenticata" e al modulo di accesso.
Penso che il testo dovrebbe essere "Quando un utente inserisce un sito, il sito dovrebbe generare un valore pseudocasuale (crittograficamente strong) ..."
Questo è anche più facile da implementare, come ho fatto nel modo seguente:
- L'applicazione recupera la richiesta GET: genera un cookie CSRF (di sessione) (se il cookie non è già presente nella richiesta)
- (else) L'applicazione richiama la richiesta non GET (POST, PUT, ecc.): convalida il cookie CSRF con il token CSRF nella richiesta.
Mi manca un aspetto importante qui?