我是 Rails 初学者,目前正在阅读 Michael Hartl 的 Rails 3 教程,并且有一个我非常好奇的问题:
在通过“faker”创建管理员用户和其他 99 个普通用户的上下文中,Hartl 解释了为什么它会将“:admin”添加到用户模型中的 attr_accessible 并因此将“admin:true”添加到“faker”测试代码中的初始化哈希是一个坏主意。相反,他解释说应该使用“toggle!(:admin)”并避免在可访问属性中添加“:admin”,否则恶意用户可以直接发送 PUT 请求,如“PUT /users/17?admin=1”。
http://ruby.railstutorial.org/book/ruby-on-rails-tutorial#sec:revisiting_attr_accessible
因此,按照 Hartl 的建议,我的管理员布尔值现在是安全的,但是我的其他用户属性(例如姓名、电子邮件)被定义为可访问属性呢?这是否意味着恶意用户可以通过类似于上述的 PUT 请求轻松更改这些属性?在教程中,Hartl 谈到了一个名为 curl 的命令行工具,它可以发出这样的 PUT 请求表单。我真的不想用我的示例应用程序尝试这个,我的问题只是,我是否忽略了某些东西或者可能是恶意 PUT 请求,例如“put /users/17?name='new_name'”?
如果有人会回答我的问题,请提前感谢您!