2013-07-26 29 views
0

我一直在分析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); 

結果是:數組([name] => 266e79f0eac297f66eaf7926636f03fa [expire] => 900)

這個元素來自哪裏?我的意思是有沒有價值,讓我做到這一點:

md5('value'); 

並獲得相同的[名]元素

+0

不是,它完全是一個隨機值或僞隨機數 – WooDzu

+0

你已經發布了幾次,但你並沒有真正地說過你要完成什麼,所以很難做出迴應。 – Elin

+0

我想測試joomla安全性我的意思是如果我有會話值和會話名稱,我可以創建自己的會話並登錄到管理員面板 – caesar

回答

0

嘿,我發現這個問題的答案。

會話值計算如下。

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

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

使用以下代碼獲取會話值。 (dirname(FILE))。DIRECTORY_SEPARATOR.'configuration.php');

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

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

所以,你的名字變量的值來自於md5($ secret.'site'),它是會話值。如果您再次使用md5,它會爲您提供會話cookie值。