Инъекция mongoDB

Есть ли общий шаблон в Java, чтобы избежать атак на атаку mongoDB?

Спасибо

Ответ 1

Используйте один из поддерживаемых драйверов. Не десериализуйте строки как JSON и передавайте их как запросы, например. не делайте этого (в Ruby):

collection.send(query_type, JSON.parse(parameters))

где query_type и parameters - строки, исходящие из формы. Вы должны были быть преступно глупыми, чтобы сделать это, хотя.

Так как нет языка запросов, таковой не существует в той же комнате для инъекций. Одной из причин, по которой возможны атаки SQL-инъекций, является то, что действие, которое требуется предпринять (SELECT, UPDATE, DELETE и т.д.), Является частью строки запроса. MongoDB и многие другие более новые базы данных, не работают так, вместо этого действие является частью API. Если драйверы SQL имеют только query, а в некоторых случаях exec, MongoDB имеет find, UPDATE, insert и remove.

Ответ 3

Большинство драйверов настраиваются там, где вы создаете запросы как представление документов BSON на языках. На каких языках вы собираетесь использовать монго?

Ответ 4

да есть, используя поиск в регулярном выражении. Пример: скажем, вы проверяете имя пользователя, и вы не используете EQ op. Если я передаю [a-z], например, я обойду ваше действие для входа:).

Но в любом случае это очень зависит от логики того, как вещи реализованы в решении.