2013-07-18 12 views
5

Invece di utilizzare un cookie, sto utilizzando un token JWT che viene inviato con ogni richiesta. Ogni richiesta è una richiesta POST in modo che il token non venga salvato nella cronologia del browser.Utilizzo di JWT anziché Cookie sul sito abilitato SSL

È un'app a pagina singola.

Il token si presenta come:

{ 
    userId: 12345678, 
    expires: <UNIX timestamp>, 
    otherInfo: <something> 
} 

Tutto è SSL. Il token viene creato sul server quando l'utente si collega.

Questo sarebbe un buon modo per sostituire un cookie o vede qualche difetto?

+0

Perché la cronologia del browser potrebbe rappresentare un problema per un'app a pagina singola anche per le richieste GET? Le richieste AJAX non atterrano nella cronologia del browser. Ma meglio inserire il token nell'intestazione "Autorizzazione" in ogni caso, in modo che non venga visualizzato accidentalmente nei log di accesso se si utilizza GET dopo tutto. –

risposta

1

No, questa non è una buona soluzione. L'utilizzo dei cookie (con un flag httpOnly) per la persistenza delle richieste incrociate è non opzionale: è l'unico modo per archiviare in modo sicuro le credenziali di sessione, in modo che il codice JavaScript della pagina non possa accedervi direttamente.

Questo è essenziale per evitare ad es. sessione che ruba in un attacco XSS, garantendo che gli script non possano accedere alle credenziali, ma possono ancora essere utilizzate nelle richieste al server.

L'utilizzo di JWT non sembra davvero risolvere un problema, perché non è possibile utilizzare solo i cookie di sessione utilizzando un'implementazione di sessione esistente? Questo genere di cose è esattamente ciò per cui sono fatte.

Problemi correlati