Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Lista de verificación por lenguaje

5 tareas · 35 min · Principiante

Cada lenguaje tiene sus funciones peligrosas, sus valores por defecto traicioneros y sus formas propias de hacer bien lo mismo. Una lista de verificación por lenguaje convierte eso en preguntas que se pasan una por una sobre el código, para no depender de la memoria del revisor. Curubital te entrega su lista de Python, su lista de JavaScript para Node.js, un importador y un servicio de avisos, y la búsqueda rápida que hizo su equipo.

0 de 5 · 0%

Objetivo de la sala

Cada lenguaje tiene sus funciones peligrosas, sus valores por defecto traicioneros y sus formas propias de hacer bien lo mismo. Una lista de verificación por lenguaje convierte eso en preguntas que se pasan una por una sobre el código, para no depender de la memoria del revisor. Curubital te entrega su lista de Python, su lista de JavaScript para Node.js, un importador y un servicio de avisos, y la búsqueda rápida que hizo su equipo.

La lista de verificación es un piso. Asegura que nadie se salte las preguntas básicas de ese lenguaje —cómo se arma una consulta, cómo se lanza un proceso, cómo se leen datos serializados, cómo se genera un secreto— aunque esté cansado o tenga prisa. Por eso es por lenguaje: en Python el peligro de leer datos serializados está en ciertos cargadores; en Node.js, en copiar claves de un objeto que vino de fuera.

Lo que la lista no hace es reemplazar la traza de la fuente al sumidero. Un fallo de lógica, como una condición que deja pasar a quien no debe, no está en ninguna lista. Y la lista tampoco es una búsqueda de palabras: el mismo nombre de función puede usarse bien o mal, y solo leyendo la línea se sabe cuál de los dos casos es.

Responde para continuar

¿Qué papel cumple una lista de verificación por lenguaje en una revisión manual?

Ver pista de ayuda

Piso, no techo.

Abre el laboratorio y pasa listas/lista-python.txt sobre importador/cargar_novedades.py, ítem por ítem. El archivo que se lee lo sube cada cliente, así que su contenido viene de fuera aunque la ruta del archivo la genere el servidor. La documentación de la biblioteca de YAML para Python distingue entre su cargador seguro, que solo construye tipos básicos, y los que pueden construir objetos del lenguaje a partir de etiquetas del documento.

Responde para continuar

¿Qué ítem de la lista de Python incumple el importador? Escribe su identificador.

Ver pista de ayuda

Fíjate en cómo se convierte el contenido del archivo en datos.

Pasa ahora listas/lista-javascript.txt sobre servicio-avisos/plantillas.js. Empieza por la función que guarda las preferencias de cada usuario: mira de dónde salen las claves que se copian y si alguien decide cuáles se aceptan. En JavaScript, copiar a ciegas las claves de un objeto que vino de fuera puede alterar algo más que el objeto de destino.

Responde para continuar

¿Qué ítem de la lista de JavaScript incumple guardarPreferencias? Escribe su identificador.

Ver pista de ayuda

El bucle copia todo lo que trae el cuerpo de la petición.

El equipo buscó nombres de funciones peligrosas antes de pedir la revisión, y el resultado está en busqueda-palabras.txt. Una búsqueda así es útil para saber dónde mirar, pero cada coincidencia hay que leerla contra la lista. Una de las líneas marcadas usa una función de nombre peligroso de la forma que la lista pide.

Responde para continuar

¿Qué línea de la búsqueda NO es un hallazgo según las listas del equipo?

Ver pista de ayuda

Compara cada línea con el ítem de procesos de su lenguaje.

Una línea puede incumplir más de un ítem a la vez, y una búsqueda de palabras no lo ve. Vuelve a convertirAPdf y lee no solo cómo se lanza el proceso, sino con qué se arman las rutas de los archivos que se le pasan. Después cuenta todos los ítems distintos de las dos listas que incumple el código revisado.

Responde para continuar

¿Cuántos ítems distintos de las dos listas incumple, en total, el código revisado en esta sala?

Ver pista de ayuda

Uno de Python y tres de JavaScript; uno de los de JavaScript está en la misma línea que otro.

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