🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónConsultas NoSQL construidas con objetos del usuario
5 tareas · 40 min · Principiante
En una base de documentos la consulta no es una cadena: es una estructura. Por eso la defensa de siempre —la consulta preparada— no se traduce sola, y aparece un error propio: dejar que el cliente decida la forma del filtro y no solo sus valores. El servicio de cuentas de Tinajal Servicios entrega su ruta de ingreso, su buscador de pedidos, sus utilidades de validación y un registro que anota el tipo de cada valor recibido.
Objetivo de la sala
En una base de documentos la consulta no es una cadena: es una estructura. Por eso la defensa de siempre —la consulta preparada— no se traduce sola, y aparece un error propio: dejar que el cliente decida la forma del filtro y no solo sus valores. El servicio de cuentas de Tinajal Servicios entrega su ruta de ingreso, su buscador de pedidos, sus utilidades de validación y un registro que anota el tipo de cada valor recibido.En las bases de documentos el filtro de una consulta se escribe como un objeto: claves que son campos y valores que son lo que se busca. Esa forma evita de entrada el problema clásico de pegar texto en una cadena de consulta, y por eso se repite la idea de que «aquí no hay inyección». La idea es falsa a medias: lo que se mezcla ya no es texto con texto, sino estructura con estructura.
El motor acepta que el valor de un campo sea un dato simple o un objeto con operadores de comparación —mayor que, distinto de, existe, coincide con una expresión—. Si el valor del filtro llega tal cual desde el cuerpo de la petición, quien manda la petición decide cuál de los dos envía, y con ello cambia el significado de la consulta sin tocar una sola letra del código. MITRE lo agrupa en CWE-943, de nivel clase, sobre los elementos especiales en la lógica de una consulta de datos; el catálogo nombra expresamente las consultas de documentos.
Hay una segunda variante, más silenciosa: copiar la consulta entera recibida dentro del filtro del servidor. Ahí no se discute el tipo de un valor, se discute quién escribe el filtro.
Responde para continuar
¿Por qué el filtro de una base de documentos puede cambiar de significado sin que cambie el código?
Ver pista de ayuda
Mira qué puede ser el valor de un campo dentro del filtro.
Abre el laboratorio y lee la carpeta tinajal-nosql. El proyecto ya tiene escrita la defensa: un archivo de utilidades con una función que devuelve el valor solo si de verdad es una cadena de texto. Una de las rutas de pedidos la usa. La ruta de ingreso, no.
Responde para continuar
¿Qué función del propio proyecto comprueba que un valor sea texto antes de entrar en un filtro, y la ruta de ingreso no llama? Escribe su nombre tal como aparece en el código.
Ver pista de ayuda
Está exportada junto a otra utilidad para listas cerradas.
El registro de ingresos no guarda valores: guarda el tipo de lo que llegó en cada campo, que es lo que la política de la empresa permite anotar. Eso basta para separar el ruido de lo que importa. Busca la línea donde el resultado es correcto y el tipo de lo recibido no es el que una pantalla de ingreso puede producir.
Responde para continuar
¿Qué cuenta terminó con un ingreso correcto en una petición cuyos valores no eran texto? Escríbela tal como aparece en el registro.
Ver pista de ayuda
Hay varias peticiones con valores no textuales; solo una terminó en «correcto».
Para el informe hace falta una cifra, no una impresión. Cuenta las peticiones de ingreso del registro en las que al menos uno de los dos campos llegó con un valor que no era texto, sin importar cómo terminaron.
Responde para continuar
¿Cuántas peticiones de ingreso del registro llegaron con al menos un valor que no era texto? Escribe solo el número.
Ver pista de ayuda
Revisa las dos columnas de tipo, no solo la del usuario.
La ruta de ingreso y el buscador de pedidos fallan por motivos distintos y se corrigen distinto. En el ingreso, el filtro lo arma el servidor y de fuera solo entra un valor con su tipo comprobado. En el buscador, el problema es que el filtro del servidor se completa con lo que mande el cliente: la corrección es leer campo por campo los filtros permitidos y construir el objeto con ellos, con el inquilino puesto por el servidor y sin posibilidad de que nadie lo reemplace.
Responde para continuar
En el buscador de pedidos, ¿qué consecuencia tiene copiar la consulta recibida dentro del filtro del servidor?
Ver pista de ayuda
Fíjate en el orden en que se arman las claves del objeto.
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.