Rails 5.0.0.beta1 - Создание URL-адреса из параметров, не подвергнутых санитарной обработке, небезопасно

Мы обновляемся с Rails 4.2.5 до 5.0.0.beta1

При тестировании мы ожидали увидеть показания индекса, отображаемые с разбитыми на страницы ссылками, как и раньше. Но теперь мы получаем страницу с ошибкой ArgumentError, например:

ArgumentError in Transactions#index 
/app/views/kaminari/_paginator.html.erb where line #10 raised:


<%= paginator.render do -%>

Generating an URL from non sanitized request parameters is insecure!

Application Trace | Framework Trace | Full Trace

app/views/kaminari/_paginator.html.erb:10:in block in _app_views_kaminari__paginator_html_erb___4026289994022119719_69904100316060' app/views/kaminari/_paginator.html.erb:9:in_app_views_kaminari__paginator_html_erb___4026289994022119719_69904100316060'
app/views/transactions/index.html.erb:2:in `_app_views_transactions_index_html_erb__422882858554400818_60602560'

Вопрос был поднят с помощью kaminari

В дальнейшем исследовании представлен новый код Rails 5.0.0.beta1, который теперь выдает ошибку: actionpack/lib/action_dispatch/routing/url_for.rb

Добавление этого в config/application.rb "исправляет" его, но не отличная идея:

config.action_controller.permit_all_parameters = true

Вместо этого добавление этого не устраняет проблему, не знаю почему:

config.action_controller.always_permitted_parameters =  [:current_page, :page, :total_pages, :per_page, :remote, :paginator]

Ответы

Ответ 1

Это, по-видимому, исправлено в ветки ведущего github, поэтому теперь в вашем файле gem укажите:

gem 'kaminari', :git => "git://github.com/amatsuda/kaminari.git", :branch => 'master'