JWT per l'autenticazione e l'autorizzazione e la protezione di un'API. È fattibile / sicuro?

0

Sto sviluppando un'applicazione web che gestisce la sicurezza e l'igiene sul lavoro in modo che i clienti possano accedere alle informazioni su argomenti medici, come esami, relazioni, incidenti, capacità di lavoro, cose del genere.

Informazioni come questa sono piuttosto delicate, quindi voglio davvero assicurarmi che ogni informazione sia protetta nel modo migliore possibile. L'applicazione Web è sviluppata in Angular 5 e l'API è sviluppata in Asp.Net Core 2.0, sto utilizzando JWT per autenticare e autorizzare un utente.

Finora nella mia ricerca, ho trovato molti articoli scoraggianti sull'uso di JWT e altri che affermavano che JWT non ha nulla di sbagliato se usato correttamente .

Pro

Contro

Perché JWTS succhia come token di sessione

Cose da utilizzare al posto di JWT

Sto memorizzando il token in un cookie (conosco il XSS e CSRF ) e in questo momento ho fatto questo:

  • Meccanismo di password strong (hash e sale con un strong algoritmo)
  • Tabella blacklist JWT nel DB (per revocare i token)
  • I dati all'interno del token sono sottoposti a hash (anche se il token è stato rubato, non hanno informazioni dal token stesso)

E lo farà in futuro:

  • API che accetta richieste solo dall'URL del client (non "AllowAnyOrigin")

Quindi, sono sulla strada giusta? Dovrei fermarmi adesso? Ho fatto qualcosa di sbagliato? Qualsiasi aiuto è apprezzato.

    
posta LuisMorais 02.07.2018 - 17:51
fonte

1 risposta

0

Usa i JWT solo se intendi utilizzare le caratteristiche uniche dei JWT. Utilizza i normali cookie di sessione se hai solo sessioni normali.

I JWT sono token firmati. Ciò è utile se si effettua l'autenticazione su un server e si utilizza il JWT in un altro servizio. Quindi i token firmati offrono alcuni vantaggi, poiché i due server non devono condividere alcun dato utente. Se il server di autenticazione è separato dal servizio che utilizza l'autenticazione, le JWT possono essere una soluzione.

Se stai solo creando un'app Web, in cui è possibile accedere ai dati di sessione in tutta l'app, non c'è alcun vantaggio reale per le JWT e i cookie di sessione funzionano meglio. ASP.NET ha un eccellente supporto per le sessioni con i cookie, e penserei che renderebbe il software un po 'più semplice se ne andassi con quello.

    
risposta data 03.07.2018 - 11:29
fonte

Leggi altre domande sui tag