sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvor farlig er en mongo-forespørgsel, som føres direkte fra en URL-forespørgselsstreng?

For så vidt angår injektion er et problem, ligesom med SQL, er risikoen væsentligt lavere... omend det er teoretisk muligt via en ukendt angrebsvektor.

Datastrukturerne og protokollen er binære og API-drevne i stedet for at udnytte undslippede værdier inden for et domænespecifikt sprog. Dybest set kan du ikke bare narre parseren til at tilføje en ";db.dropCollection()" til sidst.

Hvis det kun bruges til forespørgsler, er det sikkert fint... men jeg vil stadig advare dig om at bruge en lille smule validering:

  • Sørg for kun alfanumeriske tegn (filtrer eller ugyldiggør null og alt andet, du normalt ikke ville acceptere)
  • Håndhæv en maksimal længde (som 255 tegn) pr. term
  • Håndhæv en maksimal længde af hele forespørgslen
  • Strip særlig parameternavne, der starter med "$", som "$where" og sådan
  • Tillad ikke indlejrede arrays/dokumenter/hashes... kun strenge og ints

Husk også, at en tom forespørgsel returnerer alt. Du vil måske have en grænse for denne returværdi. :)



  1. MongoDB - Opdater et dokument

  2. Strategier til hurtige søgninger af milliarder af små dokumenter i MongoDB

  3. Enhver, der arbejder rundt med Mongodb-nøgle, kan ikke indeholde . eller $?

  4. MongoDB dropIndex-kommando