cookie 如何在 PHP 的会话管理中发挥作用/帮助?

Posted

技术标签:

【中文标题】cookie 如何在 PHP 的会话管理中发挥作用/帮助?【英文标题】:How do cookies play role/helps in session management in PHP? 【发布时间】:2017-05-05 20:32:31 【问题描述】:

我在 php 中研究了 Cookie 的基本概念,但不知道它们在会话管理中的使用或帮助。

谁能解释一下cookie是如何在会话管理或会话处理中使用的,特别是在PHP中?

如果您可以在回答中附上一些有效的“VALID”示例,这将有助于理解。

谢谢。

【问题讨论】:

cookie PHPSESSID 用于识别客户端,以便服务器知道要加载哪个会话。如果没有 cookie,服务器必须使用 $_GET 进行回退——这会使 URL 变得丑陋,容易出错并且存在巨大的安全风险。 cookie-vs-session 或 how-do-cookies-and-sessions-work 的可能重复 @GiftZwergrapper :我的问题不同。我已经检查了您提供的链接。请从我的问题中删除可能重复的标签。谢谢。 让我们说得简单一点:不是通过 URL 中的 GET 参数设置自己的 SEESIONID,而是由 PHP 完成。 PHP 为此使用了 Cookie。那个连接,仅此而已。您可以自己执行此操作,但是您必须自己检查当前请求是否来自同一用户(浏览器检查/ IP 检查 ....),以便与正确的用户使用正确的会话。请注意:任何用户都可以设置 cookie 数据,因此可以劫持其他用户的会话数据。 【参考方案1】:

Cookie 是一种在远程浏览器中存储数据并因此跟踪或识别回访用户的机制。

例如,您可以将 cookie 用于具有“记住我”选项的登录系统。验证登录后,您可以使用加密的用户 ID 存储 cookie auto_login。然后下次如果用户访问网站并且会话结束,您可以使用 cookie 的 id 为他自动登录。

我并不是说这是正确的做法。只是一个简单的例子。

【讨论】:

以上是关于cookie 如何在 PHP 的会话管理中发挥作用/帮助?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 会话管理

PHP 会话在服务器的某些站点中不起作用

Java会话技术之Cookie

Java会话技术之Cookie

会话管理(Cookie/Session技术)

在从 php 会话注销期间取消设置 cookie 有啥意义?