Joomla会话中的options数组?

时间:2013-07-26 12:09:41

标签: session joomla

我一直在分析joomla会话,我遇到了一些问题。其中一个问题是会话名称。

参见此代码:(seesion.php#894)

    protected function _setOptions(array $options)
{
    // Set name
    if (isset($options['name']))
    {
        session_name(md5($options['name']));
    }

    // Set id
    if (isset($options['id']))
    {
        session_id($options['id']);
    }

    // Set expire time
    if (isset($options['expire']))
    {
        $this->_expire = $options['expire'];
    }

    // Get security options
    if (isset($options['security']))
    {
        $this->_security = explode(',', $options['security']);
    }

    if (isset($options['force_ssl']))
    {
        $this->_force_ssl = (bool) $options['force_ssl'];
    }

    // Sync the session maxlifetime
    ini_set('session.gc_maxlifetime', $this->_expire);

    return true;
}  

我的问题在于$ options数组,我将其添加到脚本中:

print_r($options);

结果是:Array([name] => 266e79f0eac297f66eaf7926636f03fa [expire] => 900)

这个元素来自哪里?我的意思是有一个值可以让我这样做:

md5('value');

并获得相同的[name]元素

1 个答案:

答案 0 :(得分:0)

嘿,我找到了答案。

会话值计算如下。

$ hash = md5(md5($ secret.netite'));

其中$ secret在配置文件中定义。

使用以下代码获取会话值。

include_once(目录名(目录名(文件))DIRECTORY_SEPARATOR.'configuration.php');

$ config = new JConfig; $ secret = $ config-> secret;

$ hash = md5(md5($ secret.netite'));

所以对你来说,name变量的值来自md5($ secret.netite'),这是会话值。如果再次使用md5,它将为您提供会话cookie值。