-3

编辑(13.07.10):

所以这本书只是想说明 cookie 与会话的功能,最后一个例子是将两者结合起来。但从功能的角度来看,它并没有多大意义。最后一个例子是:

使用 user_id 设置 cookie,并将会话变量设置为 user_id。因为会话变量在浏览器关闭时会被删除,所以要检查是否设置了 cookie,如果设置了,请将 user_id 复制到会话变量中,以使登录持久性比浏览器关闭更长时间。

请注意,这是一本初学者的书,而不是真正实用/实用的书。

完成编辑

我正在阅读 Head First PHP,这本书讨论了当您再次打开浏览器时,通过从现有 cookie 变量重置会话变量,持久性对于同时使用 cookie 和会话变量的优越性。

但是当你想一想,除了 cookie 之外再次使用会话有什么意义,如果当你同时使用这两个 cookie 时已经暴露了?也就是说,我在这里不是在谈论会话 ID cookie,我只是在谈论将 cookie 变量直接复制到会话变量上——而不是获取地址或类似的东西。

4

1 回答 1

2

Cookie 对最终用户可见,并且用户可以更改它们。如果您需要存储用户不应查看或伪造的数据,则应使用会话。会话数据存储在服务器上,而不是用户的 PC 上。会话使用单个 cookie,即会话 ID,它只是一个随机字符串,用作会话存储的密钥。如果用户修改它,它很可能会导致一个与任何内容都不匹配的密钥——它足够长,以至于他们很难猜测其他用户使用的会话 ID。

您可以通过加密所有内容来使用 cookie 实现类似的功能,但是当您可以只使用为您处理它的会话时,为什么还要完成所有这些工作呢?唯一的原因是如果您的服务器定期重置会话,并且您需要比这更长的持久性。

于 2013-07-09T03:46:49.183 回答