3

我想限制 phpsessid cookie 仅用于管理员会话期间的安全连接,但允许 phpsessid 用于普通用户的不安全连接。每次在调用 session_start() 之前运行脚本时都需要调用 session_set_cookie_params,但我需要先调用 session_start() 来检查告诉我用户是否是管理员的会话数据。

我希望只有通过 https(管理面板、登录等)才能访问的页面和站点的其余部分(文章等)可通过普通用户的正常连接和管理员的安全连接访问。使管理员的sid永远不暴露;暴露 sid 并仅依靠 IP、用户代理等检查是不够的。重要的交易将受到密码保护,但不可能对所有交易都进行密码保护,这会令人讨厌。

4

2 回答 2

2

在 PHP 中,您设置session.use_only_cookiessession.cookie_secure配置选项。这可以在运行时或在您的 php.ini 中完成。cookie_secure 是一个糟糕的名字,但它告诉客户端这个 cookie 必须始终通过 https 传输。

于 2012-06-22T23:31:28.860 回答
1

一个简单的方法可能是使用session_name()并设置会话的名称。然后,仅在管理页面和 HTTPS 的页面上启动“管理会话”。

于 2012-06-21T21:32:36.237 回答