当前位置:  开发笔记 > 后端 > 正文

Rails:在数据库中存储会话的优点?

如何解决《Rails:在数据库中存储会话的优点?》经验,为你挑选了3个好方法。

我只是想知道为什么在数据库中存储会话?在数据库中存储会话有什么好处吗?



1> Pan Thomakos..:

数据库或memcached的优点是会话数据不能在客户端被篡改,并且您可以存储比使用cookie(4kB)更大量的数据.

如果您的会话存储在cookie或数据库中并且重新启动Web服务,则会话数据不会丢失.如果它存储在memcached中,它可能只会丢失.

如果服务器是负载平衡的,则会话数据将传递到为请求提供服务的Web服务器,因此这不是cookie,数据库或memcached会话的问题.

Cookie优于memcached或数据库的优点是客户端存储会话数据,因此服务器不对其负责.

请记住,cookie将以任何方式传递到客户端和从客户端传递,因为仍需要维护会话引用.


在会话劫持中,用户不会篡改客户端的会话数据.他们正在复制会话ID cookie以获取对系统的访问权限,就好像他们是经过身份验证的用户一样.

2> bmancini..:

我能想到的两个原因是:

1)如果重新启动Web服务,则会话数据不会丢失

2)在负载平衡环境中,会话数据存储在中央位置,这意味着任何服务器都可以为请求提供服务并可以访问会话数据.


部分是的,将会话数据存储在cookie中存在安全隐患:http://guides.rubyonrails.org/security.html#session-storage.

3> 小智..:

我能想到至少有三个原因.如果您将会话保存在数据库中,您可以:

在您执行的任何Rails实例上轻松访问它.因此,如果您有多台计算机,则无需担心分发会话数据.

您没有仅在使用cookie会话存储时适用的4kb会话限制会话.虽然您不应该使用会话来存储对象,但有一天您可能会使用该功能.

使用和RDBM(而不是Memcached或任何其他非持久存储)时,您不必担心会丢失会话数据.

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有