【发布时间】:2016-12-06 12:03:55
【问题描述】:
我目前正在创建一个 PHP 登录系统,并认为我会根据研究建议为此使用会话 ID cookie。当然,我想让它尽可能安全,因此我将 httponly cookie 参数设置为 true。
现在的问题是,如果我在调用 session_start() 函数之前尝试设置会话 cookie 参数,它似乎根本没有创建会话 id cookie,而如果我以相反的方式执行它。当然,如果我以相反的方式执行,则不会设置参数。
所以要明确一点,这甚至不会生成会话 ID cookie:
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
session_start();
这确实会生成一个,但没有适当的参数。 (我通过在浏览器中检查我的 cookie 信息确认了这一点)
session_start();
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
我想不出为什么会发生这种情况,也不知道如何解决这个问题。 如果有人可以帮助我,那就太好了。
提前致谢!
【问题讨论】:
-
您要设置的值是什么,例如
$secure是什么? -
Secure 和 httponly 都是真的。我使用了他们在此处提供的示例link
-
您是否通过 https 加载页面/该域是否有 ssl 证书?
-
不只是基本的http
标签: php session-cookies