嗨我有一个NOOB问题,因为Rails中的安全漏洞导致他们的应用程序被利用,GITHUB发生了什么。
在Rails中保护对象属性的最佳方法是什么,但仍允许在适用的情况下为它们分配值?
由于
答案 0 :(得分:2)
实际上Rails 3.1添加了新的内置方法来处理带有角色的质量分配,这可能是你想要看的东西。
发行说明here
基本上它的工作原理如下:
class User < ActiveRecord::Base
attr_accessible :name
attr_accessible :name, :role, :as => :admin
end
这使您可以使用以下方式允许用户在您的某个控制器中更新自己的信息:
@user.update_attributes(params[:user])
并且该用法永远不会更新User模型中的:role
属性。但是当您的管理员用户在单独的控制器中管理角色时,您可以使用以下语法:
@user.update_attributes(params[:user], :as => :admin)
这样也可以更新:role
属性