NoSQL Injection в DynanmoDB - PullRequest
       13

NoSQL Injection в DynanmoDB

0 голосов
/ 12 октября 2019

Кто-нибудь знает, есть ли какие-либо известные уязвимости SQL с библиотекой Dynogels при взаимодействии с базой данных NO SQL?

Не используются никакие сложные запросы, только стандарт болота с существующими методами. query (), где (), равно () и т. д.

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Dynogels передает предоставленные значения фильтра / запроса, используя структуру ExpressionAttributeValues, которая отделена от самой структуры запроса (FilterExpression). Это аналогично использованию параметризованных запросов SQL, которые передают параметры в отдельной структуре от самого запроса.

Другими словами, если в качестве значений фильтра вы используете только ненадежный ввод, внедрение, изменяющее структуру запроса, должноневозможно:

// Assume "req.body" is untrusted input
Table.query(req.body.key)
    .filter('somecolumn').equals(req.body.somecolumn)
    .exec(callback);

Вышеуказанное безопасно, если оно не является уязвимостью уровня приложения, позволяющей пользователю запрашивать любой ключ. Во всех контекстах, где используется ненадежный ввод, он не может повлиять на структуру запроса.


Раскрытие информации: я один из тех, кто поддерживает диногелей. Если вы обнаружите уязвимость, пожалуйста, сообщите нам об этом в частном порядке, чтобы мы могли ее устранить, прежде чем публиковать подробности.

0 голосов
/ 12 октября 2019

Возможно, это не совсем известная проблема, но она касается общих входных данных и сохранения их в любой базе данных, в которой вы всегда нуждаетесь для дезинфекции ваших данных для предотвращения инъекций.

Поскольку вы много работаете с JSON в DynanmoDB, будьте особенно осторожны при десериализации пользовательского ввода в объекты JSON и вставке или обновлении этих объектов непосредственно в базу данных NoSQL. Например, убедитесь, что пользователь не может добавить дополнительные поля в объект JSON.

Все зависит от того, как вы проверяете введенные пользователем данные.

Я думаю, можно с уверенностью сказать, что базы данных NoSQL имеют доступ кбазы данных больше с точки зрения функций и объектов JSON. Вы должны меньше беспокоиться о SQL-инъекциях, чем традиционные string based access (TSQL) базы данных.

...