Posso impedire gli attacchi CSRF usando localstorage / sessionstorage?

6

Ho delle applicazioni front / back che devono essere registrate per essere utilizzate. Quando eseguo l'accesso (tramite l'app front-end che invia una richiesta al back-end), ciò che faccio non è l'invio di un cookie, ma un JSON con un token al suo interno. Quest'ultimo verrà archiviato dall'app di front-end in sessionstorage e ogni volta che interagirà con il back-end invierà una richiesta insieme al token memorizzato in sessionstorage . Il back-end verificherà la validità del token.

Pensi che questa soluzione sia sicura da CSRF? Vedi altre vulnerabilità che non sto considerando / ignorando?

    
posta Bertuz 01.04.2016 - 00:25
fonte

1 risposta

3

È certamente più sicuro dell'uso di un cookie quando si tratta di CSRF, ma è meno sicuro quando si tratta di XSS, perché l'archiviazione di sessione può essere letta da javascript, mentre i cookie solo http non possono.

Quindi dipende da quanto sei sicuro della tua protezione contro XSS.

Se segui questo approccio, ti suggerirei di utilizzare l'intestazione Autorizzazione con lo schema del portatore.

Authorization: Bearer <token>

Altre cose da tenere a mente:

  • L'archiviazione della sessione non è condivisa tra le schede.
  • Non è possibile utilizzare questo metodo per le immagini che richiedono l'autenticazione. Per quelli potresti ancora usare un cookie (assicurati di ignorare il cookie per tutti gli altri endpoint e possibilmente limitare il percorso del cookie a un percorso in cui vengono trovate solo le immagini)
risposta data 14.04.2016 - 22:49
fonte

Leggi altre domande sui tag