Ruby On Rails - Что означают эти предупреждения о Тормозе?
Я использую brakeman
gem
для сканирования моего приложения.
После сканирования приложения я получаю следующие предупреждения:
#Security warnings
Method | Warning Type | Message
------------------------------------------------------
show | Unscoped Find | Unscoped call to PatientMessage#find near line 27: Message.find(+params[:id]+)
------------------------------------------------------
#Controller warnings:
Controller | Warning Type | Message
----------------------------------------------------------------------------
ApplicationController | Cross-Site Request Forgery | 'protect_from_forgery' should be called in ApplicationController
Может кто-нибудь помочь понять, что означают эти предупреждения?
1 ответ
Ошибка protect_from_forgery в значительной степени говорит само за себя (это говорит о том, что вы должны включить метод, который помогает защитить ваш сайт от межсайтовых скриптов в вашем контроллере приложения), но документы для Unscoped Find находятся здесь: http://brakemanscanner.org/docs/warning_types/unscoped_find/
По сути, это говорит вам, что вы должны сделать что-то вроде:
current_user.messages.find(params[:id])
вместо Message.find, поэтому пользователи не могут просто найти какое-либо сообщение, передав идентификатор в params. В приведенном выше примере предполагается, что у вас есть помощник current_user и что сообщение принадлежит пользователю, что может быть не так в вашем приложении, но именно это означает предупреждение.