0

我正在使用 rails 3.2 并设计 1.5.3。

我在我的模型中添加了一个管理属性,如设计 wiki How To: Add an Admin Role上的选项 2 中所述

我在 post 控制器中添加了这个用于强制登录:

before_filter :authenticate_user!

我写了一些逻辑来根据你是否是管理员来隐藏我的视图中的编辑/新链接。

我觉得我应该做的更多。我是否应该在新/编辑/删除操作中添加任何其他内容以使它们更安全?如果有,在哪里?

4

2 回答 2

0

您的身份验证和授权机制负责为您处理安全问题,您应该确保它定期更新安全更新。

只有通过测试才能可靠地覆盖您对错过某些东西的那种下沉的感觉。因此,编写一些测试来验证您设置 Devise 安装的方式实际上是正确的,并且非管理员用户无权访问他们不应访问的任何内容。然后要非常小心,确保在添加新内容时更新安全限制。

不需要编写测试来确保 Devise 正常工作 - 但您确实需要编写测试来确保您对它的使用是您认为的(即,如果非管理员不应该能够访问管理页面,编写一个以非管理员身份登录的测试,尝试访问该页面,并在测试中验证用户是否被重定向,如果您有“访问被拒绝”消息,那就是它正在触发)。这样,如果您稍后无意中破坏了安全访问,您至少有机会被测试套件中的测试捕获。

在每次部署之前运行您的测试套件,确保所有测试(尤其是安全测试)都在运行并通过。然后保持警惕,这就是你所能做的。

于 2012-01-26T02:54:55.980 回答
0

您的答案可能有效,但是如果您正在使用,则很难确保整个应用程序的安全性,some logic to hide the edit/new links in my views而且我敢肯定,没有多少security testing会让您觉得您可能忘记了某些事情

例如,我有人可以登录,,,,(没有管理员配置文件)并转到(在 URL 中) /users/edit/3,并开始破坏您的宝贵信息....

情况是:设计只提供身份验证,但是必须以其他方式强制执行授权,否则我可以做上述事情......

为此,我强烈推荐CanCan(来自 rbates of course),这是我亲自测试过的一个,只需阅读github中的文档和示例就可以轻松配置.....希望它有所帮助!

于 2012-01-26T03:12:04.227 回答