0

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

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

你在打开一个安全漏洞吗?

亲切的问候,

4

1 回答 1

5

不。

这是因为当参数进入控制器时,Rails 中的强参数功能会保护这些参数。现在,在控制器中,您可以像这样定义一个创建操作:

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

user_params方法如下所示:

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

此代码将允许用户参数中的名称参数并完全拒绝其他所有内容。

这将在入门指南的本节中讨论。

于 2013-11-12T03:29:38.473 回答