在我的應用程序中,我有一個「用戶」模型,其中包括一些屬性,包括「has_admin_rights」。如果爲true,則用戶是管理員,如果爲false,則不是。防止用戶使自己的管理員
每個用戶都有一個配置文件,用自己的登錄名,電子郵件地址,個人資料相片等
如果我登錄作爲一個普通用戶,我可以點擊一個名爲「個人資料」頁面上,並我可以編輯自己的帳戶,例如更新我的電子郵件地址,個人資料圖片,密碼,等等。我只能編輯我的帳戶,而不能使用其他帳戶。
如果我以管理員身份登錄,我可以做更多:例如,我可以讓另一個用戶成爲管理員,或拿走他們的管理員權限。
現在,只有管理員才能訪問「make admin」複選框出現的視圖,但我有一種感覺,僅僅限制對視圖的訪問是不夠的。
我擔心的是,因爲任何用戶都可以編輯他們自己的配置文件,那裏有什麼來阻止用戶提交自定義表單帖子,其中包含他們的「has_admin_rights」=>「1」參數自己的帳戶 - 從而授予他們自己的管理權限?
我在想的是,在用戶控制器中,在對「has_admin_rights」字段應用任何更改之前,我需要檢查以確保發出請求的用戶當前是管理員 - 否則我會忽略完全要求,不作任何改變。
你回答了你自己的問題。 UI的隱藏位不是安全措施,您必須始終檢查實際進入的請求,並在此時確定是否允許該請求。 – 2010-07-05 14:57:24
甚至比完全忽略請求更好的方法是發出錯誤消息。你永遠不知道什麼時候它可能有助於調試一個問題! – 2010-07-06 04:43:39