【发布时间】:2018-04-01 19:37:25
【问题描述】:
在设置自己的会话变量时,我突然发现 (var_dump($_SESSION)) 我的 $_SESSION 数组中有一个名为 nonce 的变量。我没有设置它(故意)。关于将变量 nonce 设置到我的 $_SESSION 数组中的任何想法?
可能是依赖项还是会话配置设置?
我设置了booktitle,而不是nonce。这是var_dump 结果的一部分:
array(6) {
["nonce"]=>
string(128) "5914056215a1efb5369e7b2fd14739c666d5dd1c17bd0312c5b5d196afdf0400ee78aac4e70d16bc6f23bc216086a45a1315ce21fbb8ad8ad85b4432a661ba0e"
["booktitle"]=>
string(5) "jimmy"
会话配置代码:
$this->session = [
'cookie_httponly' => true, // XSS
'strict_mode' => true, // session fixation
'use_cookies' => true,
'use_only_cookies' => true,
'cookie_secure' => $secure, // HTTPS only
'cookie_domain' => '/',
'cookie_lifetime' => 0, // untill browser closed
'use_trans_sid' => false
];
然后在每个页面上:session_start(); 并设置变量:
$_SESSION['booktitle'] = 'jimmy';
PHP/框架/操作系统:
PHP 7.1.3 没有框架,只有1个依赖Flintstone(键值平面文件数据库) 操作系统 Windows 10(v 1709)。
phpinfo():会话:
Session Support enabled
Registered save handlers files user
Registered serializer handlers php_serialize php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.lazy_write On On
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path no value no value
session.serialize_handler php php
session.sid_bits_per_character 5 5
session.sid_length 26 26
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_strict_mode Off Off
session.use_trans_sid 0 0
【问题讨论】:
-
不知道;发布您的代码。
-
您使用的是哪个框架和版本的 php 以及在什么操作系统上?
phpinfo()在会话/cookie 方面显示什么? -
也许我应该问问鸭子……
-
嘿, 是的,也许你应该 ;-) 不过要小心,他似乎是个庸医!
-
您需要在您的项目中搜索“nonce”,因为它可能以不同于
$_SESSION['nonce'] =的方式设置。还要检查您的 HTML 表单(例如登录表单很可能是罪魁祸首),以及您设置 cookie 的位置。