我正在为我的项目构建一个身份验证系统。 存储会话信息的推荐方法是什么(我只是存储用户的ID):
此外,使用嵌套表单和accepts_nested_attributes_for有哪些安全问题。
请告知。
提前多多感谢。
答案 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来将请求与会话相关联。