🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónProtecciones que vienen y alguien desactivó
5 tareas · 35 min · Principiante
Los frameworks traen protecciones encendidas desde el primer día, y cada una se puede apagar con una línea. Casi nunca se apaga por descuido: se apaga porque algo daba un error y había prisa. Nogal Negro asegura que tiene todas sus protecciones «puestas» porque vienen con el framework. Te entrega los extractos de configuración de tres aplicaciones, la búsqueda de exenciones, la lista de rutas y el historial de cambios que tocaron esas protecciones.
Objetivo de la sala
Los frameworks traen protecciones encendidas desde el primer día, y cada una se puede apagar con una línea. Casi nunca se apaga por descuido: se apaga porque algo daba un error y había prisa. Nogal Negro asegura que tiene todas sus protecciones «puestas» porque vienen con el framework. Te entrega los extractos de configuración de tres aplicaciones, la búsqueda de exenciones, la lista de rutas y el historial de cambios que tocaron esas protecciones.La protección contra peticiones falsificadas entre sitios (CSRF) viene encendida en Django, en Laravel y en Spring Security. Las tres funcionan igual en lo esencial: una petición que cambia datos tiene que traer un valor que solo la página legítima conoce, y que otro sitio no puede adjuntar aunque el navegador de la víctima envíe su cookie de sesión.
De ahí sale la regla para juzgar una excepción. Si quien llama no es un navegador con sesión, sino otro servidor que no usa cookies, el token no aporta nada y se sustituye por un control propio, como la firma del aviso de una pasarela. La documentación de Spring recomienda apagarla solo en servicios que no usan clientes de navegador. Si quien llama es un navegador con cookies, la excepción deja la ruta abierta, sea cual sea el motivo.
Responde para continuar
¿En cuál de estos casos es razonable quitar la protección CSRF de una ruta?
Ver pista de ayuda
Pregúntate qué hace el navegador con la cookie de sesión en cada caso.
En Django, la protección la aplica CsrfViewMiddleware a toda la aplicación, y el decorador csrf_exempt la quita de una vista concreta. Que el middleware esté en la lista no dice nada de las vistas exentas: hay que buscarlas en el código y juzgar cada una con tres preguntas. ¿Cambia datos? ¿La llama un navegador con sesión? ¿Hay un control que sustituya al token?
Abre tienda-middleware.txt para confirmar que la protección general está activa y después tienda-exenciones.txt para juzgar cada exención.
Responde para continuar
¿Qué vista de la tienda quedó exenta de CSRF sin nada que la sustituya, aunque cambia datos de una cuenta con sesión? Escribe su nombre.
Ver pista de ayuda
De las tres, una solo lee y otra comprueba una firma.
En Laravel, la comprobación la hace el middleware ValidateCsrfToken, que va dentro del grupo web. Las rutas que no deben pasar por él se declaran en bootstrap/app.php con validateCsrfTokens(except: [...]), y la documentación sugiere, para avisos de un tercero, sacarlas directamente del grupo web. Cada entrada de esa lista acepta comodines, y un comodín cubre todas las rutas que hay debajo, también las que se escriban el año que viene.
Lee el extracto de bootstrap/app.php y cruza cada entrada con autores-rutas.txt: quién llama a cada ruta y qué cambia.
Responde para continuar
¿Qué entrada de la lista de excepciones del portal de autores deja sin token un formulario de navegador que cambia datos? Escríbela tal como aparece.
Ver pista de ayuda
Una de las dos entradas corresponde a una llamada entre servidores; la otra cubre varias rutas a la vez.
En Spring Security la protección CSRF también viene encendida, y se puede quitar para toda la aplicación con una línea o solo para un grupo de rutas con ignoringRequestMatchers. Una API que se autentica con un token en la cabecera Authorization y no usa cookies no la necesita; un panel con formulario de acceso y cookie de sesión sí, aunque viva en la misma aplicación.
Lee distribucion-seguridad.txt, después distribucion-rutas.txt y el cambio de febrero en historial-cambios.txt.
Responde para continuar
¿Qué grupo de rutas de la API de distribución usa sesión de navegador y quedó sin protección CSRF? Escríbelo tal como aparece.
Ver pista de ayuda
Busca el grupo cuyo estado en el navegador es una cookie de sesión.
El historial cuenta la misma historia tres veces: algo daba error, alguien apagó la protección para que funcionara y el cambio no pasó por revisión. Las dos excepciones que sí se revisaron están bien hechas. Lo que corrige el patrón es reponer cada protección, dejar fuera solo lo que tiene un control propio y que una prueba automática falle cuando una protección desaparece o una excepción se amplía.
Responde para continuar
¿Qué recomendación cierra los tres hallazgos y evita que se repitan?
Ver pista de ayuda
Un comentario documenta el hueco, pero no lo cierra.
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.