🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónRevisar una solicitud de cambio y no el proyecto entero
5 tareas · 40 min · Principiante
La mayor parte de las revisiones de seguridad no son de un proyecto entero sino de una solicitud de cambio: unas decenas de líneas que alguien quiere fusionar hoy. El riesgo cambia de forma: está en lo que se añade, en lo que se quita, en lo que la descripción no cuenta y en el código que no cambió pero depende de lo que sí. Curubital te pide revisar el PR-812 de su equipo de pagos.
Objetivo de la sala
La mayor parte de las revisiones de seguridad no son de un proyecto entero sino de una solicitud de cambio: unas decenas de líneas que alguien quiere fusionar hoy. El riesgo cambia de forma: está en lo que se añade, en lo que se quita, en lo que la descripción no cuenta y en el código que no cambió pero depende de lo que sí. Curubital te pide revisar el PR-812 de su equipo de pagos.Un diff muestra tres clases de líneas: las añadidas, las quitadas y las de contexto que no cambian. La tentación es leer solo las añadidas, que son las que el autor quiere que mires. Pero en seguridad las líneas quitadas pesan tanto o más: un control que desaparece no deja ningún código nuevo que revisar, solo un hueco. Y las de contexto enseñan qué rodea al cambio.
Después del diff vienen dos comprobaciones que no están en él. La primera, comparar la descripción con la lista de archivos tocados: todo lo que se cambia y no se cuenta merece una pregunta. La segunda, buscar quién usa lo que cambió: si una función devuelve otra cosa, todos sus llamadores cambian de comportamiento aunque el diff no los toque.
Responde para continuar
Al revisar una solicitud de cambio, ¿por qué hay que leer con atención las líneas quitadas?
Ver pista de ayuda
¿Qué rastro deja en el diff una comprobación que ya no se hace?
Abre el laboratorio, lee solicitud-PR-812.txt y después diff-PR-812.patch. La descripción promete que solo las empresas pequeñas se saltan el segundo aprobador. Busca en el diff la línea quitada y la condición que la reemplaza, y compara el dato que se usa para decidir con lo que dice la descripción. Si las dos cosas no hablan de lo mismo, una empresa grande puede quedar del lado equivocado de la condición.
Responde para continuar
¿Qué dato usa el código nuevo para decidir si pide un segundo aprobador? Escríbelo tal como aparece en el diff.
Ver pista de ayuda
La descripción habla del tamaño de la empresa; mira de qué objeto sale el número de la condición.
Ahora cruza archivos-cambiados.txt con la descripción. Cada archivo de la lista debería tener su explicación en el texto del autor; los de pruebas se explican solos si prueban lo que se describe. Fíjate en lo que el autor afirma que no cambia.
Responde para continuar
¿Qué archivo modifica el diff aunque la descripción diga lo contrario? Escribe su ruta tal como aparece en la lista de archivos.
Ver pista de ayuda
La descripción tiene un apartado de lo que no cambia.
El diff también cambia lo que devuelve una función de cálculo: antes redondeaba con centavos y ahora corta la parte decimal. El autor pensó en los pagos, pero la función la usan otros. En busqueda-llamadas.txt está la búsqueda de todas sus llamadas. Cuenta las que están en código de la aplicación, fuera de los archivos que toca el diff. No cuentes la definición, ni las pruebas, ni lo que no es una llamada de verdad.
Responde para continuar
¿Cuántas llamadas a esa función hay en código de la aplicación fuera de los archivos que toca el diff?
Ver pista de ayuda
Descarta las líneas de los archivos que aparecen en archivos-cambiados.txt, las de pruebas y la que empieza por un signo de comentario.
En el contexto del diff aparece una función que el autor no tocó salvo por un mensaje de registro, y que compara la firma del banco con el operador de igualdad de siempre. Una comparación de secretos debe hacerse en tiempo constante, y esa no lo es. El fallo es real, pero no lo trajo esta solicitud. Bloquear una solicitud por deuda vieja enseña al equipo a esconder el contexto; ignorarla porque «no es de este PR» la deja viva.
Responde para continuar
¿Qué haces con la comparación de firma que ves en el contexto del diff?
Ver pista de ayuda
Que no lo haya traído este cambio no quiere decir que no exista.
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.