我想限制在管理员会话期间仅对安全连接使用phpsessid cookie,但允许普通用户在不安全连接上使用phpsessid。每次运行脚本时都需要在调用session_start()之前调用session_set_cookie_params,但是我需要首先调用session_start()来检查会话数据,该数据告诉我用户是否是管理员。
我希望有网页,只能通过https (管理面板,登录等)和网站的其余部分(文章等),可通过普通用户的正常连接,只有通过管理员的安全连接。因此,管理员的sid永远不会公开;公开sid并仅依靠IP、用户代理等检查是不够的。重要的交易将受到密码保护,但这是不可能的所有交易,将是令人讨厌的。
发布于 2012-06-22 05:32:36
一种简单的方法可能是使用session_name()并设置会话的名称。然后,只在管理页面和HTTPS页面上启动“管理会话”。
发布于 2012-06-23 07:31:29
在PHP中,您可以设置session.use_only_cookies和session.cookie_secure配置选项。这可以在运行时或在php.ini中完成。cookie_secure是一个糟糕的名字,但它告诉客户端此cookie必须始终通过https传输。
https://stackoverflow.com/questions/11146974
复制相似问题