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