3

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

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

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

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

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

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

4

1 回答 1

0

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

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