会议未开始。错误的会话设置?

时间:2014-05-10 02:01:15

标签: php session

我在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();
}

1 个答案:

答案 0 :(得分:3)

问题在于ini_set('session.cookie_secure', 1);。因为您在localhost上进行测试,除非您已经安装了自己的自签名证书,否则您的连接不安全。由于您已告知PHP仅通过安全连接发送cookie,因此不会发送cookie。

您的解决方案可能是:

  1. 完全删除该设置
  2. 将其注释用于开发并在推送到生产时重新启用它
  3. 使用if / else语句确定您是在localhost还是在生产中并相应地启用该设置