如果在模型文件中,我只有以下代码:
class Users < ActiveRecord::Base
end
这意味着什么?与模型相关的所有属性是否都可以访问?
我如何设置'attr_accessible‘来禁止访问该模型的任何字段?
发布于 2011-01-30 02:09:58
只需设置:
class Users < ActiveRecord::Base
attr_accessible #none
end
就像潘·托马科斯所说的那样(attr_accessible是可以批量计算的参数数组。所以如果你没有发送任何符号,那么没有参数是可以访问的。
发布于 2011-12-14 01:40:21
从Rails 3.1开始,在显式调用attr_accessible或attr_protected之前,默认情况下可使用以下配置选项为所有模型禁用批量分配:
config.active_record.whitelist_attributes = true
请参阅http://edgeguides.rubyonrails.org/security.html#mass-assignment和https://github.com/rails/rails/commit/f3b9d3aba8cc0ffaca2da1c73c4ba96de2066760
发布于 2018-05-15 11:43:21
我更愿意更明确地否认一个模型:
class Users < ActiveRecord::Base
attr_accessible nil
end
结果与没有参数的attr_accessible
相同,但使您的意图更清晰。这将减少未来程序员(例如您自己!)将删除开始添加字段到attr_accessible的line...or。
这安抚了Brakeman和其他漏洞嗅探工具。
https://stackoverflow.com/questions/4838399
复制相似问题