我目前正经历一个奇怪的问题,我们的用户被注销。我还没能清晰地复制出来。
Rails应用程序正在使用默认的CookieStore。
我最初的假设是,在某种程度上,cookie中的会话数据,甚至cookie本身都被破坏了。这可能来自用户清除浏览器数据,也可能来自系统中尚未捕获的内容。
到目前为止,身份验证系统似乎正在按预期运行(Authlogic),并且我们没有在应用程序的其他组件中广泛地遇到这个问题。
我正在考虑使用ActiveRecordStore来查看问题是否得到解决。我的理解是,会话数据将存储在数据库中,如果删除cookie,用户将不会被注销。
使用CookieStore和ActiveRecordStore有很多已知的利弊吗?
为什么在创建Rails应用程序时CookieStore是默认的,而不是ActiveRecordStore呢?
发布于 2010-08-12 16:25:59
我可以回答你最后两个问题。
如果您要在会话中存储敏感数据,则不应该使用
发布于 2012-05-22 16:24:37
我认为CookieStore是默认的,因为它很简单。它不需要数据库表。
CookieStore没有ActiveRecordStore那么安全。使用CookieStore,即使您创建了一个新的会话,被截获的cookie也会使您永远访问有效的会话。使用ActiveRecordStore,可以将会话从数据库中删除,从而使其失效。
请看这篇博文:http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/
https://stackoverflow.com/questions/3469500
复制相似问题