Ruby on rails attr_accessible如何保护数据库?

Ruby on rails attr_accessible如何保护数据库?,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,在过去的4个小时里,我一直在努力学习rails的attr_accessible(我是一个新手,现在正在尝试学习rails)。每一篇文档/文章都关注attr_accessible如何防止某些属性被批量分配修改。很好,但是没有人费心解释它在其他情况下是如何保护db的 例如,我假设在提交表单以创建模型时发生批量分配。在书中的这个例子中,通过在routes.rb中声明 resources :users 我已经使使用REST轻松创建/检索/更新/删除成为可能。我假设质量赋值发生在create中。使某些属

在过去的4个小时里,我一直在努力学习rails的attr_accessible(我是一个新手,现在正在尝试学习rails)。每一篇文档/文章都关注attr_accessible如何防止某些属性被批量分配修改。很好,但是没有人费心解释它在其他情况下是如何保护db的

例如,我假设在提交表单以创建模型时发生批量分配。在书中的这个例子中,通过在routes.rb中声明

resources :users
我已经使使用REST轻松创建/检索/更新/删除成为可能。我假设质量赋值发生在create中。使某些属性不可访问是有意义的。但是更新呢?attr_accessible并没有说任何关于单个赋值的内容。因此,任何用户都可以发起POST调用来更新任何特定字段。我错过了什么?

因此,任何用户都可以发起POST调用来更新任何特定字段。我错过了什么


您错过了CSRF保护。

似乎没有错过任何东西。最常见的例子是:

如果您有一个“type”或“access”列来控制谁是管理员,谁不是管理员,并且您不保护它,那么我可以使用CURL将自己创建为具有完全权限的管理员