Rails SQL инъекция? - PullRequest
       8

Rails SQL инъекция?

31 голосов
/ 03 июня 2010

В Rails, когда я хочу найти заданное пользователем значение и избежать внедрения SQL (экранирование апострофов и т.

Post.all(:conditions => ['title = ?', params[:title]])

Я знаю, что небезопасный способ сделать это (возможное внедрение SQL) заключается в следующем:

Post.all(:conditions => "title = #{params[:title]}")

Мой вопрос: предотвращает ли SQL-инъекция следующий метод или нет?

Post.all(:conditions => {:title => params[:title]})

Ответы [ 3 ]

39 голосов
/ 03 июня 2010

Да, это так. Только второй опасен.

8 голосов
/ 03 июня 2010

Один хорошая ссылка из Руководства RoR.

5 голосов
/ 03 июня 2010

+ 1 @fphilipe и @yuval Проверьте это 5-минутное видео из railscast и это из направляющих рельсов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...