come viene mantenuta la sicurezza in sessione e JWT?

4

Utilizzo da molto tempo la sessione passport JS senza preoccuparmi seriamente dei problemi di sicurezza. Per il prossimo progetto ho pensato di sostituire session con JWT ma sorgono dubbi legati alla sicurezza mentre cerco di più su JWT .

Quindi, se utilizzo JWT per l'autenticazione, esistono due tipi di token, auth token e refresh token . Quando effettuo l'accesso, ottengo refresh token e questo viene utilizzato per comunicare con il server di autenticazione per ricevere auth token che verrà utilizzato per ottenere informazioni sensibili da data server . Ma questo refresh token che dovrebbe essere relativamente lungo vissuto rispetto a auth token che è di breve durata per essere aggiornato da refresh token dovrebbe essere memorizzato da qualche parte. Il suggerimento comune è stato localstorage , ma un token che può generare un numero infinito di auth token è esposto al lato client - questo non sembra sicuro.

Lo stesso vale per le sessioni. Quando archiviamo sessioni usando librerie come passport JS . ID (di solito) è serializzato in sessionStorage . Poi un altro client può prendere la sessione serializzata e usarla per autenticare in un altro dispositivo (è vero?).

Quindi nessuno di questi due metodi sembra molto sicuro (se quello che ho detto sopra è corretto). Stiamo utilizzando JWT e sessions con i citati rischi per la sicurezza o sto comprendendo questo errore?

    
posta forJ 15.03.2018 - 15:21
fonte

1 risposta

1

Penso che la tua comprensione sia alla pari di ciò che fa il technolgoy. Entrambi i metodi hanno intrinsecamente rischi per la sicurezza e professionisti della sicurezza. Ma penso che JWT vinca per me perché ti permette di fare a meno delle sessioni e mi occupo quotidianamente delle app di sessione, possono essere un incubo per la sicurezza.

Ci sono diversi articoli che possono risolvere il problema di sicurezza per la memorizzazione di token di aggiornamento / autenticazione se questa è la vostra preoccupazione principale. Ecco un articolo JWT di Auth0 . Ecco un altro articolo che utilizza nodeJS e JWT .

Il punto che sto facendo qui è che, se si utilizzerà una di queste tecnologie, la sicurezza di dove vengono salvate le sessioni o i token di aggiornamento deve essere eseguita con attenzione, in quanto potrebbe compromettere la sicurezza.

Tuttavia, nel caso di JWT e di token di aggiornamento, possono essere facilmente inseriti nella lista nera dal server di autenticazione, richiedendone di nuovi che invalida i vecchi token di autenticazione / aggiornamento.

    
risposta data 27.09.2018 - 03:08
fonte

Leggi altre domande sui tag