1

我正在使用 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。
但是,当我检查我的 cookie 状态时FirefoxFirebug+Firecookie它们似乎完全不受该语句的影响。即使更改域属性也会产生相同的结果。

我正在开发 XAMPP、Ubuntu 和本地主机(本地主机应该对安全问题进行特殊处理,也许)。谢谢你的帮助!

4

2 回答 2

2

session name使用时尝试使用session_set_cookie_params.

参考:
PHP session_set_cookie_params
PHP session_name

于 2012-06-21T07:31:57.213 回答
1

我有同样的问题,使用 session_name() 没有帮助。我不得不禁用 session_start() 生成 cookie 并像这样手动生成 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-供电:PHP/5.4.15

于 2014-11-12T17:21:55.470 回答