¿cómo se mantiene la seguridad en la sesión y JWT?

4

He estado usando passport JS session por un largo tiempo sin preocuparme realmente por la seguridad. Para el próximo proyecto, pensé en reemplazar session con JWT , pero surgen problemas relacionados con la seguridad a medida que investigo más sobre JWT .

Entonces, si uso JWT para la autenticación, hay dos tipos de tokens, auth token y refresh token . Cuando inicio sesión, obtengo refresh token y esto se usa para comunicarme con el servidor de autenticación para recibir auth token que se usará para obtener cualquier información confidencial de data server . Pero este refresh token , que debería ser comparativamente de larga duración en comparación con auth token , que es de corta duración para ser actualizado por refresh token , debe almacenarse en algún lugar. La sugerencia común ha sido localstorage pero luego un token que puede generar un número infinito de auth token está expuesto al lado del cliente, esto no se siente seguro.

Lo mismo se aplica a las sesiones. Cuando almacenamos sesiones usando bibliotecas como passport JS . ID (generalmente) se serializa en sessionStorage . Luego, otro cliente puede tomar la sesión serializada y usarla para autenticarse en otro dispositivo (¿es cierto?).

Entonces, ninguno de estos dos métodos parece muy seguro (si lo que he dicho anteriormente es correcto). ¿Estamos utilizando JWT y sessions con los riesgos de seguridad mencionados o lo entiendo mal?

    
pregunta forJ 15.03.2018 - 15:21
fuente

1 respuesta

1

Creo que su comprensión está a la par con lo que hace el tecnolgoy. Ambos métodos tienen riesgos de seguridad inherentes y profesionales de seguridad. Pero creo que JWT gana para mí, ya que te permite prescindir de las sesiones y trato con las aplicaciones de sesión todos los días, pueden ser una pesadilla de seguridad.

Hay varios artículos que pueden abordar la preocupación de seguridad para almacenar tokens de actualización / autenticación si esa es su preocupación principal. Aquí hay un artículo JWT por Auth0 . Aquí hay otro artículo que utiliza nodeJS and JWT .

Lo que quiero decir aquí es que, si va a utilizar cualquiera de estas tecnologías, la seguridad de dónde se guardan las sesiones o los tokens de actualización debe hacerse con cuidado, ya que puede comprometer un dolor de cabeza de seguridad.

Sin embargo, tenga en cuenta que, en el caso de JWT y los tokens de actualización, el servidor de autenticación puede incluirlos fácilmente en la lista negra, lo que requiere generar otros nuevos que invaliden sus tokens de autenticación / actualización anteriores.

    
respondido por el geforceGTX480 27.09.2018 - 03:08
fuente

Lea otras preguntas en las etiquetas