Pet*_*kou 10 ruby-on-rails ruby-on-rails-5
我尝试使用下面的代码时收到此错误,
link_to params.merge(:sort => column, :direction => direction, :page => nil) do
"#{title} #{content_tag(:i, "", class: "fa fa-chevron-#{direction == 'asc' ? 'up': 'down'}") }".html_safe
end
Run Code Online (Sandbox Code Playgroud)
特别是当我在那里添加params.merge时似乎发生了.什么是真正的原因,我该怎么办?
完整的错误消息
尝试从未经过清理的请求参数生成URL!攻击者可以将恶意数据注入生成的URL,例如更改主机.白名单和清理传递的参数是安全的.
使用Rails版本5.
iGE*_*GEL 15
只需使用Rails 的常规强参数功能将好的参数列入白名单.您不必按照指南中的建议定义方法,只需params.permit(...)
在您需要的地方调用,例如:
link_to "asdf", params.permit(:page, :customer_id).merge(sort: column)
Run Code Online (Sandbox Code Playgroud)
使用params.permit!
允许所有参数(基本上闪避新的安全检查)因此不推荐.
对于任何遇到此类问题的 Rails 新手来说,这是params.permit!
在实际验证这些参数后最好的做法。
我尝试使用smart_lists
gem,但它似乎还不兼容 Rails 5。对我来说,这是关于查看回溯以查看在哪里使用了奇怪的参数,以便我可以允许它们。同样,根据用途,应在适当验证后进行许可。
归档时间: |
|
查看次数: |
7256 次 |
最近记录: |