Estoy desarrollando una aplicación web que administra la seguridad y la higiene en el trabajo para que los clientes puedan acceder a información sobre temas médicos, como exámenes, informes, accidentes, capacidad para trabajar, y cosas por el estilo.
La información como esta es bastante sensible, así que realmente quiero asegurarme de que cada pieza de información esté segura de la mejor manera posible. La aplicación web se desarrolló en Angular 5 y la API se desarrolló en Asp.Net Core 2.0, estoy usando JWT para autenticar y autorizar a un usuario.
Hasta ahora, en mi investigación, he encontrado muchos artículos que desalientan el uso de JWT y otros que afirman que JWT no tiene nada de malo si se usa correctamente .
Pros
-
Hoja de referencia de seguridad REST (no es realmente un 'pro', pero ayuda a implementar)
Contras
Por qué JWTS apesta como tokens de sesión
Cosas que usar en lugar de JWT
Estoy almacenando el token en una cookie (sé sobre XSS y CSRF ) y ahora mismo he hecho esto:
- Mecanismo de contraseña segura (hash y sal con un algoritmo fuerte)
- tabla de lista negra JWT en la base de datos (para revocar tokens)
- Los datos dentro del token están en hash (incluso si el token es robado, no tienen información del token en sí)
Y lo haré en el futuro:
- La API acepta solicitudes solo desde la URL del cliente (no 'AllowAnyOrigin')
Entonces, ¿estoy en el camino correcto? ¿Debo parar ahora mismo? He hecho algo mal? Cualquier ayuda es apreciada.