Rails - 会话的Cookie或活动记录存储

时间:2011-08-10 16:35:55

标签: ruby-on-rails security

我正在为我的项目构建一个身份验证系统。 存储会话信息的推荐方法是什么(我只是存储用户的ID):

  • Cookie Store
  • Active Record Store

此外,使用嵌套表单和accepts_nested_attributes_for有哪些安全问题。

请告知。

提前多多感谢。

3 个答案:

答案 0 :(得分:7)

使用CookieStore时肯定存在安全问题。主要问题是不能在服务器端杀死CookieStore会话。如果有人可以访问您的cookie,他可以轻松地以您的身份登录。即使您注销并使用新cookie启动新会话。

ActiveRecordStore至少使您能够通过从会话中删除会话来使会话无效。

这是一篇关于它的好文章。 http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/

答案 1 :(得分:4)

Rails默认为cookie存储,所以这可能是最佳选择。一般来说,cookie商店非常适合高流量网站。你不应该在会话中存储任何关键任务的东西(你说你只存储很棒的用户ID)。

就安全问题而言,使用那些......我不认为有太多?查看railscasts以获得有关使用它们的精彩教程。只有想到的事情可能是使用attr_accessible来限制你可以批量分配的东西。如果您需要,CanCan也是授权的绝佳宝石。

答案 2 :(得分:0)

如果您只存储一个ID,请务必使用Cookie。 AR会话仍然需要cookie中的某种id来将请求与会话相关联。