CakePHP 2.x - 如何检查黑洞回调中的会话是否过期?

时间:2014-01-11 13:45:11

标签: php security session cakephp

我的AppController中有以下配置:

public $components = array(
    'Session',
    'Security' => array(
        'blackHoleCallback' => 'blackHole',
        'csrfExpires' => '+1 hour',
        'csrfUseOnce' => false
    )
);

blackHole回调函数的开发版本:

public function blackHole($type) {
    $this->Session->setFlash(
        sprintf('Is session valid: %d, Security issue type: %s', 
             $this->Session->valid(), $type));
}

出于测试目的,存储在core.php中的会话配置如下所示:

Configure::write('Session', array(
    'defaults' => 'php',
    'timeout' => 1 // 1 minute
    )
);

现在,当我登录时,转到包含某种表单的页面并在会话过期1分钟后提交表单(如预期的那样),但$this->Session->valid()在我的blackHole回调中返回true(btw:{ {1}}值为' csrf')。 为什么Cake声明会话在不是

时有效

我正在使用CakePHP v.2.4.3。

0 个答案:

没有答案