【问题标题】:Why store session data in an application database?为什么将会话数据存储在应用程序数据库中?
【发布时间】:2012-07-29 11:57:57
【问题描述】:

除非它与应用程序特别相关,否则为什么要在数据库中跟踪会话?我的意思是,大多数会话数据都与具有会员资格的用户有关,因此如果用户已登录,您可以通过他们的会员 ID 轻松跟踪他们。那么为什么要将会话数据保存在数据库中呢?

【问题讨论】:

  • 如果来自两个来源的相同凭据出现怎么办?
  • 如果数据量很大?
  • 两个主要原因:一、多个web服务器可以访问session数据。二、随着并发用户的增加,数据库变得比使用平面文件快得多。
  • 哦,所以你们是说如果同一个用户登录不同的浏览器,或者不止一个人作为同一个用户登录。我明白了,存储会话数据确实有意义。但还有更深层次的技术原因吗?

标签: php mysql database session membership


【解决方案1】:

并非每个人都只使用一台服务器运行,并且基于文件的会话很难在多台服务器之间可靠地共享。将会话放入数据库可以解决大部分共享问题。

【讨论】:

  • 但是假设我们只想跟踪登录的用户,那么没有理由跟踪会话数据对吧?
  • 您如何判断用户已登录?不能通过 cookie 来做到这一点,因为这样恶意用户很容易伪造“登录”cookie 并在您的系统中运行 amok。这就是存在会话的原因 - 将敏感数据(例如登录状态)置于用户手中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 2021-10-11
相关资源
最近更新 更多