如何将PHPSESSID cookie限制为https?

时间:2012-06-21 21:23:21

标签: php security session

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

我希望页面只能通过https(管理面板,登录等)以及网站的其他部分(文章等)通过正常用户的正常连接以及管理员的安全连接来访问。这样管理员的sid就永远不会暴露出来;暴露sid并仅依靠IP,用户代理等检查是不够的。重要的交易将受到密码保护,但是对于所有交易来说都是不可能的,那将是麻烦的。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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