Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Puntos 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.

0 de 5 · 0%

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.

Inicia sesión para registrar tus puntos y progreso en el ranking.

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