Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Leer y ajustar una regla propia

5 tareas · 45 min · Principiante

Las reglas que traen las herramientas no conocen el proyecto: no saben qué decorador comprueba el dueño de una póliza ni qué rutas son públicas a propósito. Por eso los equipos escriben las suyas, y una regla propia es código: tiene casos de prueba, falla y se corrige. Seguros Caobo te entrega una regla que busca rutas sin control de dueño, sus casos anotados, la prueba que no pasa y el inventario de rutas del portal.

0 de 5 · 0%

Objetivo de la sala

Las reglas que traen las herramientas no conocen el proyecto: no saben qué decorador comprueba el dueño de una póliza ni qué rutas son públicas a propósito. Por eso los equipos escriben las suyas, y una regla propia es código: tiene casos de prueba, falla y se corrige. Seguros Caobo te entrega una regla que busca rutas sin control de dueño, sus casos anotados, la prueba que no pasa y el inventario de rutas del portal.

Una regla de Semgrep es un archivo YAML con un identificador, un mensaje, una severidad, los lenguajes a los que aplica y uno o varios patrones. Los patrones se combinan: dentro de una lista de patrones, todos tienen que cumplirse a la vez; una lista de alternativas se cumple si se cumple cualquiera; y un patrón negado quita de los resultados lo que coincide con él. Un patrón puede usar variables, escritas con el signo de dólar y mayúsculas, que capturan cualquier nombre y obligan a que sea el mismo allí donde se repitan. Los tres puntos significan «cualquier cosa aquí».

Leer una regla es traducirla a una frase. La de Caobo dice: «una función declarada como ruta con app.route, cuyo primer parámetro es numero, y que no lleva el decorador requiere_dueno». Escrita así ya se ve qué deja fuera: cualquier otra forma de declarar una ruta, y cualquier ruta que sea pública a propósito.

Responde para continuar

Dentro de la lista de patrones de una regla, ¿qué efecto tiene un patrón negado?

Ver pista de ayuda

Piensa en la regla de Caobo: ¿qué funciones deja fuera la segunda forma?

Abre el laboratorio y lee ruta-sin-control-de-dueno.yml, luego casos-de-prueba.py. Los casos siguen la convención de pruebas de Semgrep: una anotación ruleid: encima de una línea dice que ahí la regla tiene que avisar, y una ok: dice que ahí no debe hacerlo. salida-de-la-prueba.txt compara lo esperado con lo obtenido. Busca el caso marcado como correcto que, aun así, da resultado, y lee el comentario que explica por qué no debería.

Responde para continuar

¿Qué función de los casos de prueba está marcada como correcta y aun así la regla la señala? Escribe su nombre.

Ver pista de ayuda

Es la ruta del catálogo abierto, la que lleva un decorador distinto de requiere_dueno.

El otro fallo de la prueba es más grave, porque es un falso negativo: una ruta sin control de dueño que la regla no ve. Compara cómo está declarada esa ruta con lo que la regla exige en su primer patrón. El inventario del portal muestra que esa forma de declarar rutas no es una rareza.

Responde para continuar

¿Qué función de los casos de prueba debería señalar la regla y se le escapa? Escribe su nombre.

Ver pista de ayuda

Fíjate en el decorador de ruta del último caso.

Ajustar una regla no es hacer que la prueba pase como sea. El ajuste tiene que cerrar los dos fallos por su causa: la regla debe reconocer todas las formas de declarar una ruta que usa el proyecto y debe excluir lo que el proyecto marca como público a propósito. Y la prueba tiene que seguir teniendo los cuatro casos, más uno por cada forma nueva que se añada.

Responde para continuar

¿Qué ajuste cierra los dos fallos de la prueba por su causa?

Ver pista de ayuda

Un fallo es de algo que falta en el primer patrón; el otro, de algo que falta excluir.

Aplica la regla ajustada de la tarea anterior a inventario-rutas.txt: avisa en cualquier ruta declarada con cualquiera de las tres formas que recibe un número y no lleva ni requiere_dueno ni publica. Compara con lo que da hoy la regla sin ajustar. La diferencia es el valor del ajuste: menos ruido y ningún hueco.

Responde para continuar

¿Cuántas rutas del inventario señalaría la regla ajustada?

Ver pista de ayuda

Cuenta las filas cuyo control de acceso dice ninguno, sea cual sea su decorador de ruta.

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