我有一個關於Rails安全性的問題。假設我們有User
模型,並且它有許多角色的布爾值,例如admin
,director
等等。attr_accessible/security rails with rails - 處理這個問題的最佳方法是什麼?
管理員肯定會希望在表單上編輯這些值,因此我們希望使用attr_accessible
讓管理員用戶執行此操作。
當然,其他用戶也可以編輯他們的用戶模型 - 編輯他們的個人資料,或者當他們邀請/添加新用戶到系統本身。在導演的情況下,我們實際上希望他們設置的角色比導演「小」,但我們不希望他能夠設置director
或admin
由於我們公開了這些控制器修改用戶, 't attr_accessible
允許在這種情況下設置director
和admin
?這聽起來像是一個非常大的安全漏洞。
那麼限制訪問的最佳方式是什麼?
設置每個參數,一次一個?
設置
admin = false
和director = false
上的創建/更新操作?最簡單的解決方案,但在控制器中有這種令人討厭的地方。使用if語句來查看該用戶角色是否可以編輯這些屬性並允許它?
使用導軌回調?,如
before_validation
或before_save
?其他一些聲明性解決方案?
感謝
整齊,我應該升級到3.1,然後。我的項目還很早 – 2011-05-29 08:35:23