繁体   English   中英

session.cookie_secure不设置安全cookie属性

[英]session.cookie_secure does not set the secure cookie attribute

我在php.ini中将session.cookie_secure设置为1 / true并在apache或php-fpm + nginx服务器后面运行以下代码 -

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

重新启动php-fpm / apache后,'secure'属性不会出现在Set-Cookie标头中。 使用wget和firefox检查(开发人员工具>切换工具>网络)

echo session_get_cookie_params()[secure];

返回1.强制HTTPS CGI参数打开/关闭没有任何区别。 此更改已使用 - 验证

echo $_SERVER['HTTPS'];

这在RHEL / CentOS / EL 6(PHP 5.3.3),RHEL / CentOS / EL 7(PHP 5.4)和Gentoo(PHP 5.6.29)中给出相同的结果

session.cookie_secure 仅为PHP会话扩展发送的cookie配置安全标志; 即由session_start()session_regenerate_id()调用触发的Set-Cookie标头。

它不会影响setcookie()setrawcookie() (也不会影响PHP中可能向客户端发送cookie的任何其他内容) - 这些函数有自己的$secure参数用于此目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM