我有一个用户模型:name和:is_admin属性。您不应该更改is_admin值。如果您编写的表单中任何用户都可以编辑其名称:
<%= form_for @user %>
<%= f.label :given_name %>
<%= f.text_field :given_name %>
<%= f.submit "Update" %>
<% end %>
你是否打开了一个安全漏洞?
亲切的问候,
答案 0 :(得分:5)
否强>
这是因为当参数通过Rails中的强参数功能进入控制器时受到保护。现在,您可以在控制器中定义一个类似以下的创建操作:
def create
@user = User.new(user_params)
...
end
user_params
方法如下所示:
def user_params
params.require(:user).permit(:name)
end
此代码将允许来自用户参数的name参数,并完全拒绝其他所有内容。
的讨论