JWT en localStorage con sessionId encriptado

3

Lo que quiero:

  • Almacena un JWT en localStorage. El JWT contiene reclamos sobre la autorización.
  • Evita que el JWT sea robado y usado por un atacante (usando XSS)
  • Evita CSRF

Almacenar el JWT en localStorage es malo, ya que explotar XSS llevaría a un JWT robado, que un atacante podría usar para la autorización.

El almacenamiento de JWT en una cookie solo http es malo ya que no tiene suficiente espacio para las reclamaciones.

Una posible solución es:

  • Crear una cookie http única con un ID de sesión
  • Almacene JWT en localStorage con el mismo sessionId encriptado dentro
  • En el servidor, verifique que el ID de sesión en JWT y la cookie coincidan antes de usar las notificaciones.

De esta manera, el JWT puede ser robado, pero no puede usarse a menos que el atacante también tenga el sessionId de la cookie. Además, CSRF no es posible porque una cookie no es suficiente para la autorización.

¿Hay algún fallo con mi razonamiento? ¿Hay alguna forma más fácil de lograr lo mismo?

    
pregunta Magnus Jeffs Tovslid 30.04.2018 - 10:55
fuente

0 respuestas

Lea otras preguntas en las etiquetas