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

MongoDB $regex-forespørgsel og potentielle udnyttelser

Min ret personlige mavefornemmelse siger:Gør det ikke. Men igen, hvis du alligevel gør det eller endda er nødt til det, så er her et par forslag til, hvordan du håndterer dette krav:

  1. Du kan definere en maksimal tid, som en forespørgsel må køre for at bruge maxTimeMS() .
  2. Du kunne forsøge at rense regex-inputtet, men jeg tvivler på, at der findes biblioteker derude, som ville hjælpe dig med det givet de endeløse variationer af potentielt langvarige komplekse forespørgsler. Begrænsning af længden af ​​et regex kan også hjælpe, men på den anden side modvirker det sandsynligvis formålet med at tillade en bruger bekvemt at søge ved hjælp af vilkårlige filtre.
  3. Du kunne levere mere struktureret forespørgselsinput, som f.eks. tillade kun en bruger at indtaste en enkelt alfanumerisk tekst, som du så ville pakke ind i et regex på serversiden for at tillade f.eks. "starter-med", "indeholder" eller "slutter-med" forespørgsler eller noget.
  4. Du kunne kun tillade en enkelt parallel forespørgsel pr. bruger (session? ip?), hvilket sandsynligvis ville hjælpe lidt mod fatale DoS-angreb, men bestemt ikke mod distribuerede... Eller du kunne endda kun tillade et enkelt parallelt kald af det slutpunkt på tværs af hele systemet.



  1. Automatiser tjek af databasekonfiguration

  2. Automatisk beregning af felter i mongodb

  3. hvordan kører du et mongo shell-script med en installeret meteor-app?

  4. 'TypeError:meme.find(...).forEach er ikke en funktion' i mongoose node js?