🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónToken sincronizado y doble envío
5 tareas · 40 min · Principiante
El control principal contra las peticiones no deseadas es un valor que la página del portal conoce y una página ajena no. Bien hecho es sencillo; mal hecho, deja pasar justo lo que debía frenar. El Fondo Pescadero te entrega el código de su verificador, sus decisiones durante una prueba funcional, la nota técnica de su simulador de créditos y un extracto de su proxy. Se lee el control como quien lo va a corregir.
Objetivo de la sala
El control principal contra las peticiones no deseadas es un valor que la página del portal conoce y una página ajena no. Bien hecho es sencillo; mal hecho, deja pasar justo lo que debía frenar. El Fondo Pescadero te entrega el código de su verificador, sus decisiones durante una prueba funcional, la nota técnica de su simulador de créditos y un extracto de su proxy. Se lee el control como quien lo va a corregir.En el patrón de token sincronizado, el servidor genera un valor imprevisible ligado a la sesión, lo pone en cada formulario (o lo entrega a la página para que lo envíe en una cabecera) y lo exige de vuelta en cada petición que cambia algo. Una página de otro sitio no puede leer el formulario del portal, porque la política del mismo origen le impide leer la respuesta, y por eso no puede incluir el valor.
Para que el patrón sirva tienen que cumplirse cuatro cosas: el valor es imprevisible, está ligado a la sesión, se verifica en el servidor en todos los métodos que cambian estado y su ausencia se trata igual que un valor incorrecto.
Responde para continuar
¿Por qué una página de otro sitio no puede incluir el token sincronizado en su petición?
Ver pista de ayuda
Piensa en qué impide la política del mismo origen: enviar o leer.
Lee proteccion_csrf.py línea por línea, sobre todo la condición final. Un verificador que solo compara cuando el campo viene acepta, sin darse cuenta, las peticiones que no lo traen: justo las que llegarían desde una página ajena, que no lo conoce. Después confírmalo en registro-verificacion.txt.
Responde para continuar
¿Qué petición a /cuenta/correo se aceptó sin token durante la prueba? Escribe su identificador.
Ver pista de ayuda
Busca una respuesta 302 con el token ausente en esa ruta.
Las listas de excepciones existen por buenas razones: un aviso de una pasarela de pagos no viene de un navegador y se autentica con su propia firma. El riesgo es la excepción «temporal» que nadie retira. Revisa EXCEPCIONES en el código y pregúntate qué cambia cada ruta exenta y si tiene otro control que la cubra.
Responde para continuar
¿Qué ruta exenta de la verificación cambia algo que mueve dinero del asociado? Escríbela tal como aparece en el código.
Ver pista de ayuda
Una de las dos exenciones tiene su propia firma; la otra no.
Cuando la aplicación no guarda sesión en el servidor se usa el doble envío: el valor va en una cookie y también en una cabecera o un campo, y el servidor comprueba que coincidan. En su forma ingenua, el servidor solo compara dos valores iguales sin saber si los emitió él. La guía de prevención de OWASP la desaconseja, porque quien logre escribir una cookie para el dominio (desde otro host del mismo sitio, por ejemplo) hace que la comparación pase. La variante recomendada firma el valor con una clave del servidor y lo liga a la sesión, de modo que solo valen los que el servidor emitió para esa persona.
Lee simulador-api.txt.
Responde para continuar
¿Qué le falta al doble envío del simulador para seguir la variante recomendada?
Ver pista de ayuda
Hoy cualquier pareja de valores iguales se acepta.
Un token en la URL deja de ser secreto: queda en el historial, en los registros de cada intermediario y en la cabecera Referer de la siguiente página. Va en un campo oculto del formulario o en una cabecera, nunca en la cadena de consulta. Revisa registro-acceso.txt y su nota final.
Responde para continuar
¿Qué ruta pone el token del formulario en la URL? Escríbela sin la cadena de consulta.
Ver pista de ayuda
Busca el nombre del campo del token dentro de una línea del proxy.
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.