Rails 4加密Cookie重播攻击

我最近升级到Rails 4并切换到加密的cookie作为会话存储。 不幸的是,这似乎意味着重放攻击是可能的,即如果用户退出,任何cookie都不会失效,并且可以用于在没有用户/通行证的情况下进行身份validation。 据我所知,这是加密cookie如何工作的一个缺陷(如果我错了请赐教!),所以我的问题是:是否有一个可接受的解决方案来阻止使用加密cookie的重放攻击?

经过一些研究和一些修补,我提出了以下解决方案。

  • 当用户登录时,创建一个随机秘密(随机秘密应该具有较低的匹配概率)
  • 将这个秘密存储在会话中,即在cookie中,以及服务器端,我正在使用Dalli gem来提供memcachedfunction
  • 在请求需要身份validation的页面时,从cookie中读取密码,并确保它存在于服务器端
  • 注销时,从缓存中删除机密,因此使用相同cookie的任何后续请求都将失效

只要cookie不能被篡改,那么这应该是安全的。 欢迎任何想法/意见