Neutralización de datos en las expresiones XQuery
- Área: Codificación y Validación de entrada/salida
- Carácter del recurso: Obligatorio
Descripción
Cuando un software utiliza entradas externas para construir dinámicamente una expresión XQuery que se utiliza para recuperar información de una base de datos XML, pero no neutraliza, o no lo realiza correctamente la validación de esa entrada, permite a un atacante controlar la estructura de la consulta.
Ejemplos
Un atacante puede filtrar expresiones XQuery embebidas en otros documentos XML. Como la inyección sobre SQL, el atacante crea túneles sobre la aplicación como puntos de acceso con el objetivo de alterar las fuentes.
Un ejemplo sería el siguiente, el atacante accede al fichero accounts.xml para pedirle al proveedor del servicio que envié de vuelta todos los nombres de usuario
"doc(accounts.xml)//user[name='*'].
Este problema se evitaría, si se hubiesen utilizado consultas parametrizadas que garantizan la separación entre los datos y el plano de control. Además, se tendría que validar correctamente la entrada del usuario, rechazando los datos de forma apropiada. En resumen, asegurando que la entrada que se utiliza en las consultas XQL está a salvo en ese contexto.
Contenidos relacionados
Código | Título | Tipo | Carácter | |
---|---|---|---|---|
LIBP-0255 | Validación de los datos de entrada | Libro de pautas | Directriz | Obligatoria |