NoSQL Injection с помощью простого find_by в RoR

Я новичок в RoR, и у меня есть основной вопрос.

Коллега сказал мне, что следующий код может вызвать NoSQL Injection:

      User.find_by(username: param[:username])

Я знаю, что я не должен читать напрямую из параметра, но я все еще думаю, что код не может генерировать какие-либо инъекции NoSQL. Я ошибаюсь?

1 ответ

Ваш коллега ошибается и должен создать рабочий эксплойт, если он считает, что это правда.

Предоставление хэша пар ключ/значение в Rail или же методы — это предполагаемый, безопасный и правильный способ использования этих методов. Ключи и значения всегда защищаются перед использованием в запросе.

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

Другие вопросы по тегам