🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónAutenticar y autorizar una conexión persistente
5 tareas · 40 min · Principiante
Una petición normal trae su credencial cada vez; una conexión persistente la presenta una sola vez, al abrirse, y después pasan horas de mensajes sin que nadie vuelva a preguntar quién está al otro lado. Trasteos Corotos muestra a sus clientes, en vivo, por dónde va el camión con sus cosas. Te entregan el código que acepta la conexión y cinco registros de un mismo día. Se leen como quien va a corregir cómo nace, cuánto vive y cuándo muere esa identidad.
Objetivo de la sala
Una petición normal trae su credencial cada vez; una conexión persistente la presenta una sola vez, al abrirse, y después pasan horas de mensajes sin que nadie vuelva a preguntar quién está al otro lado. Trasteos Corotos muestra a sus clientes, en vivo, por dónde va el camión con sus cosas. Te entregan el código que acepta la conexión y cinco registros de un mismo día. Se leen como quien va a corregir cómo nace, cuánto vive y cuándo muere esa identidad.En HTTP de toda la vida cada petición es independiente: la cookie o la cabecera de autorización viajan en cada una, y el servidor puede cambiar de opinión en la siguiente. Una conexión persistente —un WebSocket, o un flujo de eventos del servidor que se queda abierto— funciona al revés. Empieza con una petición HTTP normal, el handshake, y si el servidor la acepta, el canal queda abierto y los mensajes ya no llevan cabeceras propias.
Eso significa que la identidad se decide en ese primer momento y el servidor la asocia al canal. El protocolo de WebSocket no impone ningún método para autenticar: deja que el servidor use cualquiera de los que usaría un servidor HTTP (cookies, autenticación HTTP, certificados de cliente). La consecuencia práctica es que cerrar sesión, cambiar de rol o bloquear la cuenta no alcanza a una conexión ya abierta salvo que alguien en el servidor se encargue de cortarla.
Responde para continuar
Una clienta cierra sesión en la web y su conexión de seguimiento sigue abierta. ¿Con qué identidad sigue recibiendo mensajes esa conexión?
Ver pista de ayuda
Después del handshake los mensajes ya no traen cookie ni cabecera de autorización.
El navegador no deja poner cabeceras propias al abrir un WebSocket desde JavaScript, así que muchos equipos emiten desde la web un ticket y lo mandan en la dirección del handshake. Funciona, pero una dirección se escribe en sitios donde una cabecera no: el registro de acceso del proxy, el historial, las herramientas de monitoreo. Si ese ticket sirve para abrir la conexión, quien lea esos registros también puede abrirla.
Abre el laboratorio. Lee ws-autenticacion.js y luego registro-proxy.txt, y fíjate en la nota del encargo sobre quién consulta ese registro.
Responde para continuar
¿Cómo se llama el parámetro de la dirección del handshake que lleva el ticket y queda escrito en el registro del proxy?
Ver pista de ayuda
Está en la línea del código que lee la dirección de la petición y en cada línea GET del proxy.
Un ticket para abrir una conexión debería parecerse a una entrada de cine: se emite desde una sesión ya autenticada, vale para un solo uso y caduca en segundos o pocos minutos. El código de Corotos hace lo contrario en dos puntos, y los dos están comentados con su motivo. Cruza registro-tickets.txt con registro-conexiones.txt: para cada ticket, mira desde qué dirección se pidió y desde qué direcciones se usó.
Una reconexión desde la misma dirección y con una sesión abierta en la web es lo esperable. Lo que buscas es otra cosa.
Responde para continuar
¿Desde qué dirección se abrió una segunda conexión con un ticket emitido a otra dirección?
Ver pista de ayuda
Compara la columna de dirección de las conexiones con la dirección desde la que se pidió cada ticket.
El comentario final de ws-autenticacion.js lo admite: cerrar sesión en la web no avisa al servicio de seguimiento. Busca en registro-sesiones.txt los cierres de sesión, compáralos con la hora de cierre de las conexiones de esa misma cuenta y confirma con eventos-enviados.txt si después del cierre siguieron saliendo mensajes. Una de las dos cuentas que cerraron sesión por la mañana lo hizo en un equipo compartido.
Responde para continuar
¿Qué conexión siguió recibiendo posiciones y direcciones del camión después de que su cuenta cerró sesión? Escribe su identificador.
Ver pista de ayuda
Una de las conexiones se cerró a los pocos segundos del cierre de sesión; la otra siguió abierta hasta la tarde.
Los requisitos de WebSocket del estándar de verificación de OWASP (ASVS 5.0, sección V4.4) piden, en esencia, conexiones cifradas, origen comprobado, y que si la sesión normal no sirve para el canal, los tokens propios del canal se obtengan o validen a través de la sesión HTTPS ya autenticada y cumplan las mismas reglas que una sesión. Una de esas reglas es que lo que se revoca deja de valer.
Responde para continuar
¿Qué cambio cierra los tres hallazgos de Corotos sin romper el seguimiento en vivo?
Ver pista de ayuda
Hay que atender el registro, la reutilización y el cierre de sesión a la vez.
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.