我刚刚从Rails 3.2切换到Rails 4.我正在努力确保我在安全问题上尽可能快速,并且我现在关注会话.看起来Rails 4已经远离支持任何除了基于cookie的会话以外的任何东西,但听起来似乎不可能阻止基于cookie的会话永远存在.我一直在阅读几篇文章,但这篇文章是最正式的:http://guides.rubyonrails.org/security.html#session-expiry.请注意他们如何指出这是基于cookie的会话的问题,然后他们为基于数据库的会话(现在已经弃用,显然)提供了修复.
我真的很困惑.我希望能够阻止攻击者获得一个cookie,使他能够永久访问我的登录保护站点.显然我可以在initializers/session_store.rb中设置:expire_after,但除非我错了,只是设置客户端的cookie过期并且很容易被攻击者修改,以便会话可以永久存在.当然,我可以通过强制SSL,使用安全cookie和仅强制HTTP来使事情变得更好,但在我可以强制执行会话到期之前,这绝不是完整的防御.
当Rails弃用服务器端会话的唯一方法时,如何解决此问题?
我知道活动记录会话已被转移到gem并且仍然可用,但事实仍然是它已被弃用.应该可以在不引入更多依赖关系的情况下实现解决方案,或者至少不使用已弃用的功能.