2011-04-17 70 views
1

我想知道,如果我有一個模型,其中所有的值都可以通過表單設置,我還需要使用attr_accessible嗎?如果attr_accesible未設置,是否有人可以更改ID?

重要的是我想到的是id字段(或者甚至是created_at,updated_at)字段。

如果周圍有表格,我是否應該總是將可訪問字段列入白名單?

回答

2
  1. 你應該想到,如果將來你會添加一些importaint數據,你會忘記保護它。使用attr_accessible它將被默認保護。

  2. 如果在用戶模型中有任何關聯,例如user has_many :roles, :through => :authorization,則沒有關於此關聯的任何數據,但是黑客可以mass_assign roles_attributes。因此,他將通過用戶模型中的孔更改authorizations表中的數據。

  3. 此外,他將通過簡單的has_many :dollars協會傳遞dollar_ids=[1,2,3,4,5,6,7...]通過形式與manupalate。

您還可以檢出約質量分配瑞安的截屏

http://railscasts.com/episodes/26-hackers-love-mass-assignment

1

不,id被明確排除。實際上,將它包含在attr_accessible中仍然不會讓人們覆蓋它。

,但它仍然使用attr_accessible最佳實踐,即使你打算讓人們以更新的一切

相關問題