2011-02-17 94 views
2

的Joomla 1.5.15的Joomla如何重新生成會話ID,以防止會話固定

我需要當用戶登錄到防止會話固定是可能的1.5.15更新會話ID。我意識到我可以更新到最新版本,並將被修復,但由於各種原因,我現在無法更新。

我有一個處理登錄的身份驗證插件(我不使用#__users表),在我的插件中,我使用Web服務對用戶進行身份驗證。我希望能夠在插件的這一點重新生成會話ID。

我試過簡單的session_regenerate_id()它會更新它,但我失去了所有會話數據,無法登錄。我知道Joomla使用自己的會話類,但我不知道是否有一個功能來做到這一點。

謝謝

+0

我會強烈建議升級到1.5.22。自1.5.15以來的所有版本都是安全版本,您的網站很脆弱。 – 2011-02-17 14:35:39

回答

2

使用JSession::fork()

$session =& JFactory::getSession(); 
$session->fork(); 

所有它確實是在後臺session_regenerate_id(),但它可以確保會話活動第一在做之前。你不應該這樣做,丟失任何數據(如果你這樣做,有可能是一個錯誤的地方)......

爲Joomla 2.5和Joomla 3.5會話固定可以參考的解決方案建議session fixation in Joomla 2.5

+0

試過了,它確實更新了ID但是無法登錄,會話數據似乎丟失了。在插件中,如果用戶名/密碼良好,我將響應狀態設置爲JAUTHENTICATE_STATUS_SUCCESS,然後調用fork(),然後返回true以指示登錄成功。 – RandomCoder 2011-02-17 15:01:39