🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónCookies, almacenamiento local y estado de la aplicación
5 tareas · 40 min · Principiante
HTTP no recuerda nada entre una petición y la siguiente: la aplicación tiene que guardar en algún sitio quién eres, qué llevas en el carrito y en qué paso vas. Ese sitio puede ser el servidor o el navegador, y la diferencia es la que separa un dato que se puede creer de uno que cualquiera puede cambiar. En esta sala se leen las cookies que fijó la tienda de Discos Almagre, lo que dejó en el almacenamiento del navegador, la petición de pago y un extracto del código del carrito. Todo es evidencia guardada por una revisión autorizada.
Objetivo de la sala
HTTP no recuerda nada entre una petición y la siguiente: la aplicación tiene que guardar en algún sitio quién eres, qué llevas en el carrito y en qué paso vas. Ese sitio puede ser el servidor o el navegador, y la diferencia es la que separa un dato que se puede creer de uno que cualquiera puede cambiar. En esta sala se leen las cookies que fijó la tienda de Discos Almagre, lo que dejó en el almacenamiento del navegador, la petición de pago y un extracto del código del carrito. Todo es evidencia guardada por una revisión autorizada.Cada petición HTTP llega sola: el servidor no sabe, por el protocolo, que la petición de ahora viene de la misma persona que entró hace un minuto. La solución habitual es que el servidor, al iniciar sesión, cree un registro de sesión en su lado y le entregue al navegador solo un identificador largo e impredecible en una cookie. El navegador devuelve esa cookie en cada petición y el servidor busca la sesión con ella. Lo importante queda en el servidor; el navegador solo guarda la llave.
La alternativa es guardar el estado en el navegador (en cookies con datos, en el almacenamiento local o en campos ocultos). Puede ser útil para preferencias, pero todo lo que vive en el navegador lo puede leer y modificar quien lo controla.
Responde para continuar
¿Cómo reconoce normalmente el servidor que dos peticiones seguidas son de la misma persona?
Ver pista de ayuda
El protocolo no recuerda; alguien tiene que devolver algo en cada petición.
Una cookie no es más confiable por venir del propio servidor: una vez en el navegador, la persona puede cambiar su valor con las herramientas de desarrollo o con cualquier cliente HTTP. Por eso una cookie solo debería llevar datos cuyo cambio no le dé nada a nadie (una preferencia de vista) o un identificador que el servidor valida. Cuando el servidor lee de una cookie un dato que mueve dinero o permisos y lo usa tal cual, el valor lo está decidiendo el cliente.
Abre set-cookies-tienda.txt, peticion-pago.http y carrito.php. Cruza lo que se fija, lo que vuelve y lo que el código usa.
Responde para continuar
¿Qué cookie usa el código del carrito para calcular el total del pago sin que el servidor lo decida? Escribe su nombre.
Ver pista de ayuda
El carrito se lee de la base; busca en carrito.php la otra línea que lee $_COOKIE.
El navegador ofrece dos almacenes por origen además de las cookies. localStorage dura hasta que alguien lo borra, aunque se cierre el navegador; sessionStorage vive solo mientras dura la pestaña. Los dos son accesibles para todo el código JavaScript que corre en ese origen, incluido el de terceros que la página carga y el que un atacante logre inyectar. Una cookie con HttpOnly, en cambio, viaja en las peticiones pero el JavaScript de la página no la puede leer.
Por eso una credencial guardada en el almacenamiento local queda al alcance de cualquier script de la página. Abre almacenamiento-navegador.txt.
Responde para continuar
¿Qué clave del almacenamiento local guarda una credencial que la página envía a la API? Escribe el nombre de la clave.
Ver pista de ayuda
Mira la columna de valores: solo uno es un marcador de credencial, y tiene una nota al lado.
Una cookie sin Expires ni Max-Age es de sesión: el navegador la descarta cuando considera terminada la sesión de navegación. Con Max-Age, vive el número de segundos indicado desde que se recibe; si aparecen los dos atributos, manda Max-Age. Una cookie de «recordarme» que vive mucho es una credencial que dura mucho: si se copia de un equipo compartido, sirve todo ese tiempo. El auditor la convierte a días para escribirla en el informe.
Un día tiene 86 400 segundos. Lee la cookie de «recordar» en set-cookies-tienda.txt.
Responde para continuar
¿Cuántos días vive la cookie de recordar la sesión? Escribe solo el número.
Ver pista de ayuda
Divide el valor de Max-Age entre los segundos de un día.
El navegador no manda todas sus cookies a todas partes: decide por el dominio, por la ruta y por los atributos. Con el atributo Path, la cookie solo viaja a las direcciones cuya ruta empieza por ese valor. Con Secure, solo por HTTPS. Leer qué cookies acompañan a una petición y cuáles no es la forma de comprobar que esos límites hacen lo que el equipo cree.
En peticion-pago.http la cabecera Cookie lleva cuatro cookies. Compara con las que fijó la tienda.
Responde para continuar
¿Por qué alm_recordar no acompaña a la petición POST /carrito/pagar?
Ver pista de ayuda
HttpOnly limita al JavaScript de la página, no a las peticiones.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.