我目前正在遇到一个奇怪的问题,我们的用户正在退出。我无法明确地重现它。
Rails应用程序正在使用默认的CookieStore。
我最初的假设是以某种方式 cookie中的会话数据,甚至cookie本身都被破坏了。这可能来自用户清除浏览器数据,也可能是系统中尚未捕获的内容。
截至目前,身份验证系统似乎正在按预期运行(Authlogic),我们在应用程序的其他组件中没有遇到广泛的问题。
我正在考虑使用ActiveRecordStore来查看问题是否已解决。我的理解是会话数据将存储在数据库中,如果删除了cookie,用户将无法注销。
使用CookieStore与ActiveRecordStore有很多已知的优点/缺点吗?
为什么在创建Rails应用程序时,CookieStore是默认值,而不是ActiveRecordStore?
答案 0 :(得分:5)
我可以回答你的最后两个问题。
如果您在会话中存储敏感数据,则不应使用cookie存储,因为您希望此类数据位于服务器端,而不是客户端。
Cookie存储是默认值,因为Rails会强烈建议您不要在会话中存储大量数据,因为cookie存储空间限制为4 KB。
答案 1 :(得分:0)
我认为CookieStore是默认值,因为它很简单。它不需要数据库表。
CookieStore不如ActiveRecordStore安全。使用CookieStore,截获的cookie将永久访问有效会话,即使您创建了新会话。使用ActiveRecordStore,您可以通过从数据库中删除会话来使会话无效。
请参阅此博文:http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/