Обеспечивает ли Rails автоматическую защиту от уязвимостей, например:
С учетом URL: http://a.com/?id=3131313131313
, затем в контроллере rails
@comment = Comment.find(params[:id])
Имеет ли Rails автоматическоезащитить это, или мне нужно сделать какой-то тип проверки, чтобы защитить приложение от хакеров?
Спасибо
ActiveRecord find всегда будет использовать .to_i для предотвращения магии SQL-инъекций.
.to_i
Rails также автоматически экранирует вещи в запросах, подобных этому:
Comment.where(["id = ?", params[:id]])
Но не в
Comment.where("id = #{params[:id]}")
Да. Он примет ваши параметры и санирует их, если вы беспокоитесь о внедрении SQL. Но лучший подход - использовать URL как http://a.com/31343231. Это довольно просто сделать, но выглядит лучше
http://a.com/31343231