🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLeer una consulta
5 tareas · 40 min · Principiante
Si la base de datos es la foto del código, la consulta es la pregunta que se le hace. Quien lee una consulta sabe qué alerta va a ver, qué considera un origen, qué considera un destino y qué da por limpio, y por tanto dónde puede equivocarse. En esta sala abres dos consultas de Mangostino Agro y aprendes a leerlas sin saber escribirlas: el encabezado, el recorrido y el final.
Objetivo de la sala
Si la base de datos es la foto del código, la consulta es la pregunta que se le hace. Quien lee una consulta sabe qué alerta va a ver, qué considera un origen, qué considera un destino y qué da por limpio, y por tanto dónde puede equivocarse. En esta sala abres dos consultas de Mangostino Agro y aprendes a leerlas sin saber escribirlas: el encabezado, el recorrido y el final.Una consulta de CodeQL empieza con un comentario de metadatos. Los más importantes: @name y @description (qué busca), @kind (la forma del resultado), @problem.severity (error, warning o recommendation), @security-severity (una puntuación de 0.0 a 10.0 en las consultas de seguridad), @precision (low, medium, high o very-high: cuánto se espera que acierte) y @id (un identificador único con forma de ruta, como lenguaje/descripcion).
Hay dos formas de resultado. Con @kind problem la consulta marca un lugar del código. Con @kind path-problem marca un lugar y además entrega el recorrido que lleva hasta él, paso a paso, desde donde entra un dato hasta donde se usa.
Responde para continuar
Una consulta declara «@kind path-problem». ¿Qué trae cada alerta que produce, además del lugar marcado?
El @id es el nombre con el que una consulta aparece en un informe, en una supresión o en una política. Dos consultas no pueden compartirlo. Cuando un equipo escribe «ignorar la consulta X» o «subir la consulta X a bloqueante», X es ese identificador.
Abre las dos consultas de la carpeta. Una es de seguridad y entrega recorridos.
Responde para continuar
Escribe el @id de la consulta que es de tipo path-problem.
Una consulta de flujo de datos se lee en tres partes. Primero, qué se considera un origen: los lugares donde entra un dato que no controlamos (la petición HTTP, un archivo subido, una variable de entorno). Segundo, qué se considera un destino peligroso: el punto donde ese dato haría daño si llega sin tratar, como el texto de una consulta SQL. Tercero, qué se considera una barrera: la función que, si el dato pasa por ella, hace que la consulta deje de seguirlo.
La tercera parte es la que más se olvida al leer, y la que más falsos positivos o falsos negativos provoca: una barrera que la consulta no conoce hace que marque flujos que ya están protegidos; una barrera demasiado generosa hace que la consulta deje pasar flujos que no lo están.
Responde para continuar
Escribe el nombre de la función que la consulta de recorridos reconoce como barrera.
@precision es la propia promesa de la consulta sobre cuánto acierta. Una consulta de precisión alta marca poco y casi siempre con razón; una de precisión baja marca mucho y a menudo sin razón. Con @problem.severity recommendation y precisión baja, la consulta es una sugerencia de mantenimiento, no una vulnerabilidad.
Esto importa al decidir qué consulta puede parar una fusión y cuál solo informa. Una política que bloquea por todo lo que haya en el informe termina bloqueando por sugerencias, y el equipo acaba desactivando el análisis entero.
Responde para continuar
Escribe el @id de la consulta con precisión baja.
La consulta de registro sin nivel la escribió un desarrollador del equipo de pedidos y marca llamadas que no indican el nivel del mensaje. Plataforma quiere activar el análisis en las solicitudes de cambios y decidir si esa consulta puede frenarlas.
Responde para continuar
¿Cómo se debe tratar la consulta de registro sin nivel dentro del análisis de las solicitudes de cambios?
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.