Rails:form_for安全漏洞?

时间:2013-11-12 03:22:45

标签: ruby-on-rails security form-for

我有一个用户模型:name和:is_admin属性。您不应该更改is_admin值。如果您编写的表单中任何用户都可以编辑其名称:

<%= form_for @user %>
    <%= f.label :given_name %>  
    <%= f.text_field :given_name %>
    <%= f.submit "Update"  %>
<% end %>

你是否打开了一个安全漏洞?

亲切的问候,

1 个答案:

答案 0 :(得分:5)

这是因为当参数通过Rails中的强参数功能进入控制器时受到保护。现在,您可以在控制器中定义一个类似以下的创建操作:

def create
  @user = User.new(user_params)
  ...
end

user_params方法如下所示:

def user_params
  params.require(:user).permit(:name)
end

此代码将允许来自用户参数的name参数,并完全拒绝其他所有内容。

这是关于in this section of the Getting Started guide.

的讨论