Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

LDAP y XPath: el mismo error con otra sintaxis

5 tareas · 40 min · Principiante

El filtro de un directorio y una expresión XPath son dos lenguajes pequeños, y los dos se leen igual de mal cuando el valor buscado se pega dentro de la expresión. Tinajal Servicios entrega el repositorio que consulta su directorio corporativo, el que lee su archivo de roles, las utilidades que ya existen en el proyecto y el registro del servidor de directorio. El mismo error, dos veces, con sintaxis distinta.

0 de 5 · 0%

Objetivo de la sala

El filtro de un directorio y una expresión XPath son dos lenguajes pequeños, y los dos se leen igual de mal cuando el valor buscado se pega dentro de la expresión. Tinajal Servicios entrega el repositorio que consulta su directorio corporativo, el que lee su archivo de roles, las utilidades que ya existen en el proyecto y el registro del servidor de directorio. El mismo error, dos veces, con sintaxis distinta.

El filtro de búsqueda de un directorio tiene una gramática propia, definida en una norma pública de la IETF: paréntesis que agrupan, operadores que combinan condiciones, y valores que se comparan. Esa misma norma dice qué octetos del valor hay que escribir con una barra invertida y dos dígitos hexadecimales, precisamente para que el servidor los lea como parte del dato y no como parte de la expresión. Las bibliotecas traen una función que hace esa conversión; el proyecto solo tiene que llamarla.

XPath es otro lenguaje pequeño: recorre un documento con rutas y predicados. También tiene su forma de separar el dato de la expresión —variables de la consulta que el procesador enlaza antes de evaluar— y también falla cuando el valor se pega dentro del predicado.

MITRE las separa en dos entradas de nivel base, CWE-90 para la consulta de directorio y CWE-643 para la expresión XPath, pero las dos cuelgan de la misma clase general: un elemento especial llega sin neutralizar al componente que lo interpreta. Cambia la sintaxis; no cambia el error.

Responde para continuar

¿Qué tienen en común el filtro de directorio y la expresión XPath de este módulo?

Ver pista de ayuda

El problema no es el lenguaje, es dónde entra el dato.

Abre el laboratorio y lee la carpeta tinajal-directorio. El repositorio del directorio tiene dos búsquedas: una del informe de planta y otra de la pantalla de la mesa de ayuda. Las dos arman un filtro, pero solo una pasa el valor por la utilidad del propio proyecto antes de pegarlo.

Responde para continuar

¿Qué función de las utilidades del proyecto neutraliza el valor antes de que entre en el filtro, y la búsqueda por correo no usa? Escribe su nombre tal como aparece en el código.

Ver pista de ayuda

Está en el archivo de utilidades, junto a otra que trabaja sobre nombres distinguidos.

Pasa al repositorio de roles. Tiene dos métodos: uno enlaza el valor como variable de la consulta y el otro lo pega dentro del predicado de la ruta. Léelos a la par.

Responde para continuar

¿Qué método del repositorio de roles arma la expresión pegando el valor recibido dentro del predicado? Escribe su nombre tal como aparece en el código.

Ver pista de ayuda

El otro método del archivo registra un espacio de nombres y evalúa con una variable.

El servidor de directorio no guarda el filtro recibido, pero sí cuántas entradas devolvió cada búsqueda, y eso basta. La pantalla de la mesa de ayuda muestra una ficha; el informe de planta por área sí devuelve decenas. Cuenta las búsquedas del registro que devolvieron más de cincuenta entradas desde la pantalla que debería devolver una.

Responde para continuar

¿Cuántas búsquedas por correo del registro devolvieron más de cincuenta entradas? Escribe solo el número.

Ver pista de ayuda

Descarta las búsquedas por área: esas sí devuelven muchas por diseño.

El informe tiene que decir algo que el equipo pueda aplicar mañana. En el directorio, la recomendación es llamar a la utilidad que ya existe en todas las rutas que construyen un filtro, y además limitar la búsqueda al atributo y a la rama que la pantalla necesita. En XPath, enlazar el valor como variable de la consulta en vez de pegarlo.

Responde para continuar

¿Por qué no basta con quitarle al valor los paréntesis y los asteriscos antes de pegarlo en el filtro?

Ver pista de ayuda

Compara «quitar lo que creo peligroso» con «que el dato nunca sea parte de la expresión».

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