2013-03-20 61 views
0

在Ruby on Rails中,從HTML表單更新模型非常容易。通常你可以用模型創建一個form_for,當用戶點擊提交按鈕時,那裏的字段會被更新。防止活動記錄屬性被表單修改

說盡管惡意用戶不想通過正確渠道更新他們的「工資」。他們是不是可以在更新他們的電子郵件地址(例如)時通過「薪水」這個名稱注入一個字段,並將他們的工資基本上設置爲他們想要的任何東西?我如何指定哪些字段可以修改,哪些不能防止這種情況?

@user.update_attributes(params[:user]) 

看到的東西,看起來嚇人。他們可以更新任何內容我理解使用attr_accessible,但這隻與大規模更新有關,不是嗎?

回答

2

您可以限制哪些領域可以使用質量分配:

attr_accessible :name, :address # no :salary 
+0

正確的,但不能用戶只需發佈一個:工資字段,而不是一切?或者update_attributes總是遵循attr_accessible? – Larry 2013-03-20 20:47:35

+0

'attr_accessible'列出允許批量分配的字段,例如使用'update_attributes'。他們不能因此而分配價值。 – 2013-03-20 20:56:26