2013-03-04 63 views
2

在軌3.2.x中,我能做到這一點在我的用戶模型:強PARAMS和MassAssignmentSecurity錯誤

attr_accessible :email 

和命令行運行時下面的代碼將提高MassAssignmentSecurity錯誤(因爲password_reset_sent_at不訪問):

User.new(password_reset_sent_at: Time.zone.now) 

現在雖然,切換到strong_parameters,上面的代碼將執行而不會引發任何錯誤。

我在猜測,rails將這種命令行輸入視爲值得信賴的,因爲它只能來自開發人員。我應該認爲這是安全的嗎?我認爲如果攻擊者有命令行訪問權限,攻擊者只能提交類似上面的代碼?只是有點困惑,在過去的幾天裏還是如此。

回答

2

你絕對可以認爲它是安全的,因爲如果攻擊者通過命令行訪問你的rails應用程序,那麼安全性完全消失了,他將有很多可能性來惡意更改數據庫中的數據。

使用strong_parameters寶石,您可以在控制器中控制質量分配,這是實現此目標的最佳位置。其中一個目標是阻止你在不需要保護的情況下解決羣體分配問題,例如,在控制檯或模型測試中。

+0

謝謝了,強烈的參數模式在一週左右之後就成爲了第二天性。我喜歡你現在擁有完全控制權的事實。 – stephenmurdoch 2013-03-09 06:29:59

相關問題