我正在使用 rails 3.2 并设计 1.5.3。
我在我的模型中添加了一个管理属性,如设计 wiki How To: Add an Admin Role上的选项 2 中所述
我在 post 控制器中添加了这个用于强制登录:
before_filter :authenticate_user!
我写了一些逻辑来根据你是否是管理员来隐藏我的视图中的编辑/新链接。
我觉得我应该做的更多。我是否应该在新/编辑/删除操作中添加任何其他内容以使它们更安全?如果有,在哪里?
我正在使用 rails 3.2 并设计 1.5.3。
我在我的模型中添加了一个管理属性,如设计 wiki How To: Add an Admin Role上的选项 2 中所述
我在 post 控制器中添加了这个用于强制登录:
before_filter :authenticate_user!
我写了一些逻辑来根据你是否是管理员来隐藏我的视图中的编辑/新链接。
我觉得我应该做的更多。我是否应该在新/编辑/删除操作中添加任何其他内容以使它们更安全?如果有,在哪里?
您的身份验证和授权机制负责为您处理安全问题,您应该确保它定期更新安全更新。
只有通过测试才能可靠地覆盖您对错过某些东西的那种下沉的感觉。因此,编写一些测试来验证您设置 Devise 安装的方式实际上是正确的,并且非管理员用户无权访问他们不应访问的任何内容。然后要非常小心,确保在添加新内容时更新安全限制。
您不需要编写测试来确保 Devise 正常工作 - 但您确实需要编写测试来确保您对它的使用是您认为的(即,如果非管理员不应该能够访问管理页面,编写一个以非管理员身份登录的测试,尝试访问该页面,并在测试中验证用户是否被重定向,如果您有“访问被拒绝”消息,那就是它正在触发)。这样,如果您稍后无意中破坏了安全访问,您至少有机会被测试套件中的测试捕获。
在每次部署之前运行您的测试套件,确保所有测试(尤其是安全测试)都在运行并通过。然后保持警惕,这就是你所能做的。
您的答案可能有效,但是如果您正在使用,则很难确保整个应用程序的安全性,some logic to hide the edit/new links in my views
而且我敢肯定,没有多少security testing
会让您觉得您可能忘记了某些事情
例如,我有人可以登录,,,,(没有管理员配置文件)并转到(在 URL 中)
/users/edit/3
,并开始破坏您的宝贵信息....
情况是:设计只提供身份验证,但是必须以其他方式强制执行授权,否则我可以做上述事情......
为此,我强烈推荐CanCan(来自 rbates of course),这是我亲自测试过的一个,只需阅读github中的文档和示例就可以轻松配置.....希望它有所帮助!