sql >> Database >  >> NoSQL >> MongoDB

MongoDB $ regex-query en mogelijke exploits

Mijn vrij persoonlijke onderbuikgevoel zegt:doe geen moeite. Maar nogmaals, als u dat toch doet of zelfs moet doen, volgen hier een paar suggesties om met deze vereiste om te gaan:

  1. Je zou een maximale tijd kunnen definiëren dat een query mag worden uitgevoerd voor het gebruik van maxTimeMS() .
  2. Je zou kunnen proberen de regex-invoer te zuiveren, maar ik betwijfel of er bibliotheken zijn die je daarbij kunnen helpen, gezien de eindeloze variaties van potentieel langlopende complexe zoekopdrachten. Het beperken van de lengte van een regex kan ook helpen, maar aan de andere kant gaat het waarschijnlijk voorbij aan het doel om een ​​gebruiker gemakkelijk te laten zoeken met behulp van willekeurige filters.
  3. Je zou kunnen voorzien in meer gestructureerde query-invoer die b.v. sta een gebruiker alleen toe om een ​​enkele alfanumerieke tekst in te voeren die u vervolgens in een regex op de server zou plaatsen om b.v. "begint-met", "bevat" of "eindigt-met"-query's of zoiets.
  4. Je zou één enkele parallelle query per gebruiker (sessie? ip?) kunnen toestaan, wat waarschijnlijk een beetje zou helpen tegen fatale DoS-aanvallen, maar zeker niet tegen gedistribueerde aanvallen... Of je zou zelfs slechts één enkele parallelle oproep daarvan kunnen toestaan eindpunt over het hele systeem.



  1. MongoDB - Waarom zou ik een cursor gebruiken in plaats van iterator_to_array (in PHP)

  2. Controleer of de mongodb-database bestaat?

  3. mongo.so:> undefined symbool:php_json_encode in Unknown on line 0. Na installatie mongo-stuurprogramma voor php

  4. MongoDB geaggregeerde query met behulp van PHP-stuurprogramma