我在Security SO上找到了这些会话设置,但是因为我一直在使用它,所以我注意到我的会话变量没有在每个请求上设置。我var_dumped session_start()
但它返回true。所以必须有一些这样的设置才能实现这一点。
我的会话设置有什么用吗?
//enable user sessions
ini_set('session.cookie_httponly', 1); //helps mitigate xss
ini_set('session.session.use_only_cookies', 1); //prevents session fixation
ini_set('session.entropy_file', "/dev/urandom"); //better entropy source
ini_set('session.cookie_lifetime', 0); //smaller exploitation window for xss/csrf/clickjacking...
ini_set('session.cookie_secure', 1); //owasp a9 violations
session_start();
//create and tie csrf token to session
if (!isset($_SESSION['token'])) {
$alnumGen = new AlnumGen();
$_SESSION['token'] = $alnumGen->generate();
}
答案 0 :(得分:3)
问题在于ini_set('session.cookie_secure', 1);
。因为您在localhost上进行测试,除非您已经安装了自己的自签名证书,否则您的连接不安全。由于您已告知PHP仅通过安全连接发送cookie,因此不会发送cookie。
您的解决方案可能是: