Рельсы - это безопасно? принимать параметр URL для запроса к БД? - PullRequest
5 голосов
/ 27 февраля 2011

Обеспечивает ли Rails автоматическую защиту от уязвимостей, например:

С учетом URL: http://a.com/?id=3131313131313

, затем в контроллере rails

@comment = Comment.find(params[:id])

Имеет ли Rails автоматическоезащитить это, или мне нужно сделать какой-то тип проверки, чтобы защитить приложение от хакеров?

Спасибо

Ответы [ 2 ]

6 голосов
/ 27 февраля 2011

ActiveRecord find всегда будет использовать .to_i для предотвращения магии SQL-инъекций.

Rails также автоматически экранирует вещи в запросах, подобных этому:

Comment.where(["id = ?", params[:id]])

Но не в

Comment.where("id = #{params[:id]}")
2 голосов
/ 27 февраля 2011

Да. Он примет ваши параметры и санирует их, если вы беспокоитесь о внедрении SQL. Но лучший подход - использовать URL как http://a.com/31343231. Это довольно просто сделать, но выглядит лучше

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