我正在使用HTTPS,我想为PHPSESSID
和我创建的其他cookies
设置安全属性。
session_set_cookie_params(0,'/','', isset($_SERVER["HTTPS"]));
session_start();
$data = session_get_cookie_params();
foreach ($data as $key=>$value) {
echo $key.$value;
}
该功能似乎有效,实际上,打印出session_get_cookie_params()
安全属性等于1
但是,当我通过Firefox
或Firebug+Firecookie
检查我的Cookie状态时,它们似乎根本没有受到声明的影响。即使更改域属性也会产生相同的结果。
我正在使用XAMPP,在Ubuntu和localhost上工作(localhost应该对安全问题进行特殊处理)。 谢谢你的帮助!
答案 0 :(得分:2)
使用session name
时尝试使用session_set_cookie_params
。
答案 1 :(得分:1)
我有同样的问题,使用session_name()没有帮助。我必须禁用生成cookie的session_start()并手动生成cookie:
$sessionID = $_COOKIE[session_name()];
ini_set('session.use_cookies', false);
if ($sessionID) session_id($sessionID); // reuse if available
session_start();
// session_set_cookie_params() is not working with a "path" part
// this way every click is extending the session for $timeout more
setcookie(session_name(), $sessionID ?: session_id(), time() + $timeout, $cookiePath, $_SERVER['HTTP_HOST'], false, true);
x-powered-by:PHP / 5.4.15