【发布时间】:2010-11-25 11:48:56
【问题描述】:
我只在我的社交网站上手动设置了一个 cookie,但我非常依赖 php 会话。我想知道会话是否在幕后设置了任何 cookie?
我只是在阅读 HttpOnly-cookies,我只是想弄清楚我是否可以使用它们。
【问题讨论】:
我只在我的社交网站上手动设置了一个 cookie,但我非常依赖 php 会话。我想知道会话是否在幕后设置了任何 cookie?
我只是在阅读 HttpOnly-cookies,我只是想弄清楚我是否可以使用它们。
【问题讨论】:
PHP 会话可以使用 cookie,具体取决于您如何配置它们。看看这些设置:
session.use_cookies (boolean): 指定模块是否会使用cookies在客户端存储session id。默认为 1(启用)。session.use_only_cookies (boolean): 指定模块是否只使用cookies来存储客户端的session id。启用此设置可防止涉及在 URL 中传递会话 ID 的攻击。此设置是在 PHP 4.3.0 中添加的。自 PHP 5.3.0 起默认为 1(启用)。如果您禁用会话 cookie,则会使用 GET 参数。
【讨论】:
是的。 PHP 会话依赖于包含会话密钥的 cookie。您的会话数据仅存储在您的服务器上,但会为每个会话分配一个唯一 ID,并且该 ID 会保存在 cookie 中。
您认为会话 cookie 和设置为 HttpOnly 的传统 cookie 之间有什么关系?
另外:请记住,并非所有浏览器都支持HttpOnly。
【讨论】:
确实如此,有一个名为 PHPSSID 的 cookie 用于存储会话 ID。
对于 HttpOnly cookie,请参阅 http://ilia.ws/archives/121-httpOnly-cookie-flag-support-in-PHP-5.2.html
【讨论】:
PHP 会话使用 HTTP 获取和设置会话 ID,并使用文件系统存储会话 - 任何时候都不会使用 cookie,除非您使用 setcookie() 实际创建它们;
杰米
【讨论】: