进一步保护rails app的最佳方法是什么?

时间:2012-01-26 02:51:40

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 raise

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

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

我在强制登录的帖子控制器中添加了这个:

before_filter :authenticate_user!

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

我觉得我应该做的更多......我应该在新的/编辑/删除操作中添加其他内容以使其更安全吗?如果是这样,在哪里?

2 个答案:

答案 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 ....希望它有所帮助!