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
-
Autenticazione dell'API REST con Protezione JWT e CSRF per SPA
-
Cheat-Sheet REST Security (Non proprio un 'pro', ma aiuta a implementare)
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.