MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak niebezpieczne jest zapytanie mongo, które jest pobierane bezpośrednio z ciągu zapytania URL?

O ile wstrzykiwanie stanowi problem, podobnie jak w przypadku SQL, ryzyko jest znacznie niższe... aczkolwiek teoretycznie możliwe dzięki nieznanemu wektorowi ataku.

Struktury danych i protokół są binarne i oparte na interfejsie API, a nie wykorzystują wartości ucieczki w języku specyficznym dla domeny. Zasadniczo nie można po prostu oszukać parsera, aby dodał na końcu ";db.dropCollection()".

Jeśli jest używany tylko do zapytań, prawdopodobnie jest w porządku ... ale nadal ostrzegam, aby użyć odrobiny walidacji:

  • Zapewnij tylko znaki alfanumeryczne (filtruj lub unieważniaj wartości null i wszystko, czego normalnie byś nie zaakceptował)
  • Wymuszaj maksymalną długość (np. 255 znaków) na termin
  • Wymuszaj maksymalną długość całego zapytania
  • Pasek specjalny nazwy parametrów zaczynające się od "$", takie jak "$where" i takie
  • Nie zezwalaj na zagnieżdżone tablice/dokumenty/hasze... tylko łańcuchy i dane

Pamiętaj też, że puste zapytanie zwraca wszystko. Możesz chcieć ograniczyć tę zwracaną wartość. :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mgo:jak zaktualizować konkretną tablicę w dokumencie

  2. MongoDB:automatycznie generowane identyfikatory to zera

  3. Czy MongoDB może używać indeksu podczas sprawdzania istnienia pola z operatorem $exists?

  4. $push w MongoDb nie działa?

  5. Ograniczona kolekcja MongoDb