Rails 5.0.0.beta1 - 从未过滤的请求参数生成 URL 是不安全的
Posted
技术标签:
【中文标题】Rails 5.0.0.beta1 - 从未过滤的请求参数生成 URL 是不安全的【英文标题】:Rails 5.0.0.beta1 - Generating an URL from non sanitized request parameters is insecure 【发布时间】:2016-03-28 14:34:20 【问题描述】:我们正在从 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 代码,现在会引发错误:
将此添加到 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 master 分支中修复,所以现在在您的 gem 文件中指定:
gem 'kaminari', :git => "git://github.com/amatsuda/kaminari.git", :branch => 'master'
【讨论】:
这行得通,谢谢。gem "kaminari", github: "amatsuda/kaminari"
的较短版本。
Kaminari 0.17.0 发布了这个修复:github.com/amatsuda/kaminari/blob/master/CHANGELOG.rdoc#0170以上是关于Rails 5.0.0.beta1 - 从未过滤的请求参数生成 URL 是不安全的的主要内容,如果未能解决你的问题,请参考以下文章