我有一个Secret
具有 3 个字段的模型f1
:f2
和f3
。
我有一个表单,用户只能输入 f1
和f2
. 不是f3
。
将值传递给新对象的最佳方法是什么?
如果我写@secret = Secret.new(params[:secret])
,邪恶的用户可能会传递f3
给我的模型,并将其保存在模型中。
防止用户传递额外值的最佳方法是什么?
我阅读了http://guides.rubyonrails.org/security.html#mass-assignment并且有 3 个变体:
1)黑名单(attr_protected :f3
)
2)白名单(attr_accessible :f1, :f2
) 3)全局白名单(通过配置行
强制)attr_accessible
config.active_record.whitelist_attributes = true
什么方法最好?