2012-03-07 57 views
0

您好我有一个NOOB问题,根据在GITHUB发生的事情,他们的应用程序因为Rails中的安全漏洞而被利用。如何保护属性免受大规模分配

在Rails中保护对象属性的最佳方式是什么,但仍然允许在适用的情况下为它们分配值?

感谢

回答

2

事实上的Rails 3.1添加了新的内置的方式来处理大量任务与角色这可能是要看看东西。

发行说明here

基本上它的工作原理是这样的:

class User < ActiveRecord::Base 
    attr_accessible :name 
    attr_accessible :name, :role, :as => :admin 
end 

这是什么让你做的是,你可以用下面的方法来允许用户在一个更新自己的信息你的控制器:

@user.update_attributes(params[:user]) 

这使用率永远不能更新在用户模式:role属性。但是,当你有你的管理员用户管理在一个单独的控制器的角色,那么你可以通过用户的语法如下:

@user.update_attributes(params[:user], :as => :admin) 

这将允许:role属性被更新

+0

感谢DanneManne帮助。我会这样做的。 – chell 2012-03-08 03:23:02

相关问题