Lo stesso token CSRF per la navigazione con più schede

0

Ho un piccolo problema riguardante la mia funzione token CSRF (cambia il token ogni richiesta). Ecco lo scenario del mio problema:

Quando ho aperto 2 pagine (con lo stesso token CSRF), quando apro la prima pagina e invio il modulo lì, il modulo della seconda pagina non funziona (perché il valore del token CSRF è cambiato). Se lo visualizzi dall'esperienza dell'utente lascerà un cattivo gusto, quindi ho bisogno di cambiarlo.

La mia domanda è: come posso creare la mia funzione Token CSRF, lavorare nella navigazione multi-tab, senza compromettere la sicurezza e migliorare la user experience? Perché voglio che abbiano un'esperienza utente migliore senza compromettere la sicurezza della loro navigazione.

    
posta googol8080 16.09.2016 - 07:47
fonte

2 risposte

1

Utilizza un singolo token CSRF per sessione (anziché per richiesta o per utente). Ad esempio, il token CSRF può essere l'ID di sessione di testo normale o un hash crittografato o sicuro (ad es. HMAC ) versione della chiave di sessione. Oppure è possibile memorizzare il token CSRF come variabile di sessione associata alla chiave di sessione. Queste sono tutte opzioni comuni.

Se ti stai chiedendo se questo rende il tuo sito meno sicuro, leggi questo articolo per rassicurazione.

Se ti capita di utilizzare il framework ASP.NET, il modo per farlo è semplicemente impostare Page.ViewStateUserKey all'ID di sessione.

    
risposta data 18.09.2016 - 07:59
fonte
0

Abbiamo bisogno di maggiori dettagli. Stai usando un framework?

Inoltre, se stai creando un token per ogni richiesta, come mai due schede hanno la stessa? In un certo senso contraddice ciò che hai detto.

O forse ho frainteso e intendi che hai un solo token csrf "attivo" alla volta. In tal caso, la soluzione sarebbe semplice, consentire la convalida di più token CSRF contemporaneamente (tenendo un elenco di quelli inviati sul lato server). In questo modo due diverse schede hanno due token diversi, entrambi validi.

    
risposta data 16.09.2016 - 09:09
fonte

Leggi altre domande sui tag