【问题标题】:Questions related to storing sessions in mysql [duplicate]有关在 mysql 中存储会话的问题 [重复]
【发布时间】:2013-03-02 20:33:53
【问题描述】:

使用本教程http://www.wikihow.com/Create-a-Secure-Session-Managment-System-in-PHP-and-MySQL 将会话存储在 mysql 中。一切正常。如果会话存储在文件中和会话存储在 mysql 中,则比较 cookie。

如果按照我在 cookie 中的理解存储在 mysql 中的会话不应存储任何值。

删除所有cookie,重新加载页面。

但是,当打开 cookie 时,我看到一个 cookie 名称 _s。

问题。为什么某些东西会存储在 cookie 中以及它的含义 (_s) 是什么? cookie 做什么(什么工作)?从 _s 的 cookie 值中复制出来,看到这个值和 mysql 中的值(id)是一样的。 php代码有问题吗?在这种情况下,将会话存储在 mysql 中是没有用的(如果值在 cookie 中可用)......但是请参阅在每个页面上重新加载 cookie 更改中的会话值。它也在 mysql 中发生变化,旧值从 mysql 中删除。那么,这是否意味着在任何情况下会话值都会在 cookie 中短时间存储?

如果会话存储在文件中。这是否意味着有人从文件中复制会话值,打开 cookie,将值粘贴到 cookie 中,并且在不知道用户名和密码的情况下可以在具有特定用户凭据的网站上工作?

【问题讨论】:

标签: mysql session cookies


【解决方案1】:

从用户的角度来看,将会话存储在 mysql 或文件中没有任何区别。但是有两个反对文件会话的论点:

  • 它不可扩展。如果您有多个 Web 服务器,文件将在其中一个上创建,但在其他服务器上不可用。因此,如果您拥有 2 台服务器,用户将只能在一半的时间内访问他的会话。
  • 在共享主机中,如果所有网站都共享相同的 tmp,则其他网站所有者可能会访问您的会话 ID。通常情况并非如此,但这可能是一个问题

【讨论】:

  • 谢谢!如果我将会话存储在 mysql 中,为什么会有一个 cookie?...哦,我可能不明白...无论如何,cookie 是必要的?浏览器必须在某处写入会话值以便写入 cookie?我只注意到差异。如果在 cookie 中的文件中存储会话记录谷歌分析 cookie。但是如果存储在mysql中的cookie中看不到名称__utma、__utmb等。google分析cookie是否存储在mysql中?
  • @user2118559 是的,浏览器必须保留会话 ID 并将其传递给网站以保持识别。在任何情况下,cookie 都存储在浏览器中。会话数据可以存储在任何你想要的地方:文件、mysql、mongodb、memcache...
猜你喜欢
  • 2021-12-20
  • 1970-01-01
  • 2012-07-08
  • 2018-12-09
  • 2023-03-25
  • 2013-08-20
  • 2011-10-08
  • 2022-07-01
  • 1970-01-01
相关资源
最近更新 更多