Como HTTP no tiene estado (no recuerda peticiones previas), las aplicaciones usan cookies, sesiones y tokens para "recordar" al usuario entre peticiones. Son las credenciales que mantienen tu sesión iniciada, y por eso son un objetivo frecuente de ataque.
Cookies
Pequeños datos que el servidor entrega al navegador (
Set-Cookie) y que este reenvía en cada petición al mismo sitio (Cookie). Sirven para sesiones, preferencias y seguimiento.
Sesiones (estado en el servidor):
- El usuario inicia sesión.
- El servidor crea una sesión y genera un ID de sesión único.
- Ese ID viaja al navegador en una cookie.
- En cada petición, la cookie identifica al usuario; el estado vive en el servidor.
Tokens (estado en el cliente):
Un token (ej. JWT) es un dato autocontenido y firmado que incluye la información del usuario. El cliente lo guarda y lo envía en cada petición (normalmente en la cabecera
Authorization). El servidor solo verifica la firma, sin almacenar estado.
| Sesión (cookie) | Token (JWT) | |
|---|---|---|
| Dónde vive el estado | En el servidor | En el cliente (dentro del token) |
| El servidor recuerda | Sí | No (solo verifica firma) |
| Uso típico | Webs tradicionales | APIs, apps modernas / SPA |
Por qué importa en seguridad:
- Robo de sesión/token → suplantar al usuario sin conocer su contraseña (es robar la "llave ya hecha").
- Ataques relacionados: XSS (robar cookies/tokens), CSRF (abusar de la sesión), session hijacking/fixation.
Protecciones clave de las cookies:
| Atributo | Protege |
|---|---|
| HttpOnly | JavaScript no puede leer la cookie (mitiga XSS) |
| Secure | Solo se envía por HTTPS |
| SameSite | Limita el envío entre sitios (mitiga CSRF) |
| Expiración | Reduce la ventana de robo |
Cookies, sesiones y tokens son la base de la autenticación web (tema 5) y blanco directo de XSS y CSRF (pilar Hacking Web). Su protección aplica el cifrado en tránsito (HTTPS).
CONTENIDO PARA MIEMBROS
Inicia sesión para leer la clase
La clase escrita completa es para quienes tienen cuenta. Crearla es gratis.