Есть ли общий шаблон в Java, чтобы избежать атак на атаку mongoDB?
Спасибо
Есть ли общий шаблон в Java, чтобы избежать атак на атаку mongoDB?
Спасибо
Используйте один из поддерживаемых драйверов. Не десериализуйте строки как 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
.
Вы можете создавать запросы MongoDB с помощью Javascript в предложении where, и здесь может произойти инъекция. Здесь объяснение, как предотвратить это: http://www.mongodb.org/display/DOCS/Do+I+Have+to+Worry+About+SQL+Injection
Большинство драйверов настраиваются там, где вы создаете запросы как представление документов BSON на языках. На каких языках вы собираетесь использовать монго?
да есть, используя поиск в регулярном выражении. Пример: скажем, вы проверяете имя пользователя, и вы не используете EQ op. Если я передаю [a-z], например, я обойду ваше действие для входа:).
Но в любом случае это очень зависит от логики того, как вещи реализованы в решении.