2012-03-07 34 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

相關問題