【问题标题】:Argument Error - Whitelist and sanitize passed parameters to be secure参数错误 - 白名单并清理传递的参数以确保安全
【发布时间】:2017-08-14 02:55:18
【问题描述】:

我刚刚升级到 Rails 5.0.1,遇到了安全警告:

ArgumentError in Categories#show
Showing /home/user/website/app/views/categories/show.html.erb where line #127 raised:

Attempting to generate a URL from non-sanitized request parameters! An attacker 
can inject malicious data into the generated URL, such as changing the host. 
Whitelist and sanitize passed parameters to be secure.

这是有问题的代码:

<%= link_to "Title", params.merge(:utf8 => params[:utf8], :search => params[:search], :x => "5", :y => ""), title:"Alphabetical" %>

我搜索了这个错误并发现了一些类似的问题,但它们要么解决了我正在运行的permit! 而不仅仅是permit(这在我的情况下不适用)或者问题是一个错误,我希望是不是这样。我尝试将html_safe 添加到我的参数中,但没有帮助。

有人知道如何清理我的参数以遵守 Rails 5 安全措施吗?

【问题讨论】:

    标签: ruby-on-rails ruby security ruby-on-rails-5 sanitization


    【解决方案1】:

    您可以按如下方式清理params

    <%= link_to "Title",
      params.merge(
        :utf8 => params[:utf8],
        :search => params[:search],
        :x => "5",
        :y => "").permit(:utf8, :search, :x, :y),
      title:"Alphabetical" %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 2012-09-24
      • 2014-12-18
      • 2020-09-01
      • 2017-07-25
      • 2015-11-12
      • 1970-01-01
      相关资源
      最近更新 更多