我想知道,如果我有一個模型,其中所有的值都可以通過表單設置,我還需要使用attr_accessible嗎?如果attr_accesible未設置,是否有人可以更改ID?
重要的是我想到的是id字段(或者甚至是created_at,updated_at)字段。
如果周圍有表格,我是否應該總是將可訪問字段列入白名單?
我想知道,如果我有一個模型,其中所有的值都可以通過表單設置,我還需要使用attr_accessible嗎?如果attr_accesible未設置,是否有人可以更改ID?
重要的是我想到的是id字段(或者甚至是created_at,updated_at)字段。
如果周圍有表格,我是否應該總是將可訪問字段列入白名單?
你應該想到,如果將來你會添加一些importaint數據,你會忘記保護它。使用attr_accessible
它將被默認保護。
如果在用戶模型中有任何關聯,例如user has_many :roles, :through => :authorization
,則沒有關於此關聯的任何數據,但是黑客可以mass_assign roles_attributes
。因此,他將通過用戶模型中的孔更改authorizations
表中的數據。
此外,他將通過簡單的has_many :dollars
協會傳遞dollar_ids=[1,2,3,4,5,6,7...]
通過形式與manupalate。
您還可以檢出約質量分配瑞安的截屏
http://railscasts.com/episodes/26-hackers-love-mass-assignment
不,id被明確排除。實際上,將它包含在attr_accessible中仍然不會讓人們覆蓋它。
,但它仍然使用attr_accessible最佳實踐,即使你打算讓人們以更新的一切