Защищен ли BasicDBObject.parse () от атак внедрения NoSQL? - PullRequest
0 голосов
/ 27 ноября 2018

Я использую mongo-java-драйвер для подключения к моей MongoDB.Поэтому мои вопросы касаются использования MongoDB с Java-клиентом:

  • Насколько com.mongodb.BasicDBObject.parse(userInput) защищен от атак NoSQL-инъекцией?
  • Или я должен очистить строку userInput перед синтаксическим анализом?
  • Если мне нужно очистить ввод: Существуют ли специальные методы для очистки, поставляемые с mongo-java-driver?
  • Или я должен использовать basicDBObject.put( "foo", "bar" ) вместо этого?

Документация MongoDB описывает строгий режим :

  • это строгий режим санировать ввод?
  • Как активировать строгий режим при разборе?

В руководстве OWASP описываются несколько MongoDBинъекционные атаки.И неясно, если BasicDBObject.parse() санирует сам ввод.

1 Ответ

0 голосов
/ 30 ноября 2018
  1. com.mongodb.BasicDBObject.parse () не является безопасным для инъекций NOSQL
  2. Очистка - хорошая вещь для борьбы с инъекциями в целом, но не достаточно
  3. ЕстьВот некоторые рекомендации OWASP по борьбе с инъекцией NOSQL: https://www.owasp.org/index.php/Injection_Prevention_Cheat_Sheet_in_Java#Example_-_MongoDB

Я рекомендую вам взглянуть на Hibernate OGM, если вы хотите выполнить параметризацию запроса: http://hibernate.org/ogm/documentation/. Параметризация - этоЕдинственное решение для борьбы с инъекциями

...