Saltar al contenido

Gestión adecuada de sesiones con API REST

Solución:

Almacene sus tokens en cookies para aplicaciones web, debido a la seguridad adicional que brindan y la simplicidad de protección contra CSRF con marcos web modernos. El almacenamiento web HTML5 es vulnerable a XSS, tiene una mayor superficie de ataque y puede afectar a todos los usuarios de la aplicación en un ataque exitoso.

Consulte este enlace a continuación:

Where to Store your JWTs – Cookies vs HTML5 Web Storage

En el DESCANSO adecuado no se puede realizar la sesión. Dado que tienden a almacenarse en el servidor.

Por lo tanto, deberá volver a identificar al usuario para cada solicitud.

Lo que tiene actualmente es el enfoque OAuth. Emite un token que, cuando se proporcione, se asumirá como prueba de identidad. Si alguien logra robar ese token, no hay una forma sencilla de detectarlo. En cuanto a “cómo se puede robar”, los principales vectores son XSS, extensiones de navegador y acceso físico. Puede mitigar XSS, pero realmente no puede hacer nada con los dos últimos.

También existe CSRF como vector, como mencionó @Saikrishna Radarapu, pero, si almacena su token en algún lugar, eso no es una cookie, no es realmente una preocupación.

Entonces … opciones potenciales.

El enfoque más simple solo agregaría tiempos de vencimiento para sus tokens de autenticación. Cuando el token ha expirado, le pide al usuario que vuelva a iniciar sesión. De esta manera, un ataque exitoso resultará en una … emm .. ventana de oportunidad, que puede limitar aún más pidiendo a los usuarios que vuelvan a ingresar la contraseña, cuando realicen operaciones destructivas.

Otra opción es modelar el tokens basado en este enfoque para las cookies de recuerdo, pero este enfoque tiene un serio inconveniente: no funciona bien en un entorno asincrónico. Puede mitigarlo aplicando “fusible” para cada token: márquelo como “volátil” en el primer uso y asígnelo X segundos de “tiempo de combustión”. Dentro de esos X segundos siguen devolviendo el mismo token “nuevo”, y luego marcan el token original como “caducado”.

La tercera opción, que tengo claro, es simplemente usar HTTP Basic Auth o Digest Auth, pero nunca las he probado en la práctica.

Entonces … estos son mis dos centavos sobre el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *