【发布时间】:2020-01-11 01:19:13
【问题描述】:
我想在我的代码中将 httponly 和安全标志设置为 true,但是当我尝试设置该 cookie 时。在这种情况下,不会创建 cookie,因此无法登录网站。
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1);
session_name('sim');
$_SESSION['nons']=rand(1,999999999);
$value=md5($_SERVER["REMOTE_ADDR"]." ".$_SERVER["HTTP_USER_AGENT"]." ".$_SESSION['nons']);
$_SESSION['sim']=$value;
session_start();
session_regenerate_id();
这是用于在删除以下行代码后创建会话 cookie 的代码将完美运行
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1);
但为了安全起见,我需要设置一个 cookie 标志
【问题讨论】:
-
我看到了你的会话,你的
$_COOKIE呢? -
我不使用 $_COOKIE 基本上我使用上面的代码来重新生成默认会话 cookie 的值,即 PHPSESSID
-
cookies 存储在客户端,会话存储在服务器端。我在这里没有看到你的 cookie ^
-
您为什么要尝试为会话变量赋值,在您甚至再次启动/拿起会话之前?
-
“出于安全目的” 不能有效回答您为什么以错误的顺序做事的问题……您需要先启动会话,然后将值分配给会话变量。 (您的安全标志问题甚至与该部分没有任何关系。这只是关于您的代码点的一般提示,目前没有多大意义。)
标签: php cookies session-cookies