🏘️ UnderTheHood: Sesiones y JWT
Ideas/conceptos claves
SameSite permite declarar si su cookie debe restringirse a un contexto propio o del mismo sitio.
HttpOnly ayuda a mitigar el riesgo de script del lado del cliente que accede a la cookie protegida (si el navegador lo soporta).
Recursos
Using HTTP cookies - HTTP | MDN
Apuntes
- Una cookie que tiene HttpOnly significa que desde el cliente o navegador no podemos acceder a la cookie
Sesiones y cookie
- El servidor: tiene acceso a nuestros recursos y puede acceder a la sesión directamente
- El cliente: debe consultar con el servidor haciendo una petición HTTP (
/api/auth/session/
)- Mediante el hook
useSession
- Mediante el hook
La cookie
- La cookie se marca como SameSite y HttpOnly
- El cliente no podrá leer esta cookie
La sesión y JWT
- Si no existe una base de datos se utiliza JWT y se almacena en una cookie
- Identifica un usuario. Ejemplo: sub, useruuid o uuid
- Especifica una fecha en la que vencerá la sesión
Más sobre cookies y JWT
- La cookie se marcará como Secure solo si la URL del sitio es de conexión segura HTTPS
- Normalmente, es un paso que debemos realizarlo por seguridad y Next.js lo realiza por defecto
- El token es firmado por defecto (JWS) pero no es encriptado (JWE)
¿Importa si se encripta o no el token? ¿Qué riesgos puede haber con JWT?
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.