邮政行动所需的Rails授权?

时间:2011-02-23 19:42:02

标签: ruby-on-rails authorization devise cancan

我有一个应用程序我正在使用可以扫描和设计的rails 3。我很好奇,从安全的角度来看,在控制器上授权后期操作是必要的还是有用的?假设我的所有控制器操作都需要使用身份验证(即用户必须登录)。

我可以看到为什么我需要通过cancan对我使用GET的控制器操作进行授权,因为用户可以简单地输入他们希望自由访问的URL,这必须被锁定。但是,对于帖子,用户必须从表单发布数据,该表单使用令牌防止xss攻击。

在这种情况下,可以安全地假设,如果我用cancan限制我的视图中的按钮的可见性,那么用户将无法恶意提交表单吗?

非常感谢

编辑:

感谢快速回答的人。正如下面已经指出的那样,恶意用户可以使用诸如firebug之类的工具伪造表单帖子,因此需要授权。

使用水豚/黄瓜模拟这种类型的交互(用户使用他们已经入侵的表单发布到网址)的最佳方法是什么?

再次感谢。

3 个答案:

答案 0 :(得分:2)

用户可以提交POST请求,无论他们是否在您的网站上。你认为安全令牌有助于防止XSS是正确的,但我会为其他攻击方法添加身份验证。

如果您担心安全问题,请阅读一本好的(免费)电子书Ruby on Rails Security Guide。它概述了所有常见形式的恶意攻击,甚至探索了一些较少使用(但同样有效)的方法。它还为如何使您的应用程序更安全提供了很好的解决方案。

答案 1 :(得分:1)

您应该在控制器中验证用户授权。

使用FireBug等简单工具,您可以手动编辑表单的内容,甚至可以添加更多文本字段或类似内容。 XSS保护对您无济于事。

答案 2 :(得分:0)

用户仍然可以在客户端生成按钮(使用Firebug改变浏览器代码的任何方法)并发送表单。如果我记得正确的令牌是在HTML标题中发送的,那么伪造表单就不会有问题。