sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Qué tan peligrosa es una consulta de mongo que se alimenta directamente de una cadena de consulta de URL?

En cuanto a que la inyección es un problema, como con SQL, el riesgo es significativamente menor... aunque teóricamente posible a través de un vector de ataque desconocido.

Las estructuras de datos y el protocolo son binarios y están impulsados ​​por API en lugar de aprovechar los valores escapados dentro de un lenguaje específico de dominio. Básicamente, no puede simplemente engañar al analizador para que agregue ";db.dropCollection()" al final.

Si solo se usa para consultas, probablemente esté bien... pero aun así te advierto que uses un poco de validación:

  • Asegúrese de que solo se utilicen caracteres alfanuméricos (filtre o invalide los valores nulos y cualquier otra cosa que normalmente no aceptaría)
  • Hacer cumplir una longitud máxima (como 255 caracteres) por término
  • Hacer cumplir una longitud máxima de toda la consulta
  • Tira especial nombres de parámetros que comienzan con "$", como "$where" y similares
  • No permitir matrices/documentos/hashes anidados... solo cadenas e enteros

Además, tenga en cuenta que una consulta vacía devuelve todo. Es posible que desee un límite en ese valor de retorno. :)