🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónPuntos calientes: autenticación, autorización y datos
5 tareas · 40 min · Principiante
Dentro de un módulo no todas las líneas pesan lo mismo. Hay tres lugares donde se concentran los fallos que más daño hacen: el código que decide quién eres, el que decide qué puedes tocar y el que decide qué datos salen. Curubital te entrega la recuperación de contraseña, las rutas de empleados y desprendibles de pago, los esquemas de respuesta, sus decoradores de seguridad y la descripción de una pantalla.
Objetivo de la sala
Dentro de un módulo no todas las líneas pesan lo mismo. Hay tres lugares donde se concentran los fallos que más daño hacen: el código que decide quién eres, el que decide qué puedes tocar y el que decide qué datos salen. Curubital te entrega la recuperación de contraseña, las rutas de empleados y desprendibles de pago, los esquemas de respuesta, sus decoradores de seguridad y la descripción de una pantalla.Un fallo en una función de cálculo suele dañar un dato. Un fallo en la autenticación entrega la cuenta entera; uno en la autorización entrega los datos de todos los demás usuarios; uno en lo que sale en la respuesta los entrega sin que nadie tenga que romper nada. Por eso, dentro del tiempo que hay, una revisión manual va primero a esos tres puntos y deja para después el resto.
Cada uno tiene sus preguntas fijas. En la autenticación: cómo se generan y comparan los secretos, qué responde el sistema cuando algo falla y cuántas veces se puede intentar. En la autorización: si cada ruta comprueba no solo que hay sesión y rol, sino que el recurso pedido pertenece a quien lo pide. En los datos: qué campos salen en cada respuesta comparados con lo que la pantalla de verdad usa.
Responde para continuar
¿Por qué la autenticación, la autorización y la salida de datos se revisan antes que el resto?
Ver pista de ayuda
Piensa en a cuántas personas afecta un fallo en cada uno.
Abre el laboratorio y lee app/autenticacion/recuperacion.py. Un código de recuperación es un secreto de corta vida: quien lo adivine entra en la cuenta. Por eso tiene que salir de un generador pensado para seguridad, que el lenguaje ofrece aparte del generador pensado para simulaciones y juegos. En Python esa diferencia está documentada: el módulo secrets es el indicado para valores de seguridad.
Responde para continuar
¿Qué función del archivo produce un valor que debe ser secreto con el generador que no está pensado para seguridad? Escribe su nombre.
Ver pista de ayuda
Mira qué módulo se importa al principio del archivo y dónde se usa.
En el mismo archivo hay más preguntas de autenticación que hacerse. Lee las dos funciones que atienden la solicitud y el uso del código, y compara lo que responden en cada caso con lo que permiten repetir. Ten cuidado con dar por malo lo que está bien: también hay decisiones correctas en ese archivo.
Responde para continuar
Además del generador, ¿qué otros dos problemas tiene la recuperación de Curubital?
Ver pista de ayuda
Mira el error de la primera función y piensa cuántas veces puede llamarse la segunda.
Lee ahora app/empleados/rutas.py y, al lado, app/seguridad/decoradores.py. Los decoradores comprueban que haya sesión o un rol, y su propia documentación dice lo que no comprueban. Eso significa que cada ruta que carga un recurso por su identificador tiene que filtrar ella misma por la empresa, o por el empleado, del usuario que pregunta. Compara cómo cargan el recurso las rutas del archivo.
Responde para continuar
¿Qué función carga un recurso por su identificador sin comprobar que pertenezca a quien lo pide? Escribe su nombre.
Ver pista de ayuda
Una de las rutas con identificador filtra por la empresa de la sesión; la otra solo busca por el número.
La exposición de datos casi nunca está en la consulta: está en el esquema que convierte el objeto en respuesta. Para revisarla se cruza cada esquema con la pantalla que lo consume. Lee app/empleados/esquemas.py y pantallas/selector-de-turnos.txt, y busca en el esquema del listado el campo que la pantalla no necesita y que más daño hace si llega a quien no debe.
Responde para continuar
¿Qué campo del esquema del listado de empleados entrega un dato financiero que la pantalla que lo usa no muestra? Escríbelo tal como aparece en el esquema.
Ver pista de ayuda
La pantalla muestra tres datos y guarda uno más para funcionar; compara con la lista de campos del esquema del listado.
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.