ruby on Rails 参数注入
我有一个关于 ruby on Rails 以及使用通过表单传递的 params 变量分配变量的过程的问题
class User
attr_accessible :available_to_admins, :name
end
假设我有一个仅对我的管理员可用的字段。假设您不是管理员,我不会在您的表单中显示 available_to_admins 输入。
之后,当我想保存您的数据时,我只需执行以下操作:
User.update_attributes(params[:user])
如果您是管理员,那么没问题, params[:user] 将包含 name 和 available_tu_admins ,如果您不是管理员,则只有您的名字。
由于 available_to_admins 是一个 attr_accessible 参数,我应该如何防止非管理员用户能够注入包含 available_to_admins 输入及其新值的变量?
I have a question about ruby on rails and the process of assigning variables using the params variable passed through a form
class User
attr_accessible :available_to_admins, :name
end
Let's say that I have a field that is only available to my admins. Assuming that you are not an admin, I am going to not display the available_to_admins input in your form.
After that, when I want to save your data I'll just do a:
User.update_attributes(params[:user])
If you are an admin, then no problem, the params[:user] is going to contain name and available_tu_admins and if you're not then only your name.
Since the available_to_admins is an attr_accessible parameter, how should I prevent non admin users from being able to inject a variable containing the available_to_admins input with their new value?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一个。您可以检查控制器中的用户角色。
b.您可以将 before_save / before_update 回调添加到模型中
a. You can check user role in controller.
b. You can add before_save / before_update callbacks to your model
关于这个主题有一个有趣的 Railscast:
dynamic attr_accessible
There was an interesting Railscast on this topic:
dynamic attr_accessible