Joomla, как восстановить идентификатор сессии, чтобы предотвратить фиксацию сессии - PullRequest
2 голосов
/ 17 февраля 2011

Joomla 1.5.15

Мне нужно обновить идентификатор сеанса, когда пользователь входит в систему, чтобы предотвратить фиксацию сеанса, которая возможна в 1.5.15. Я понимаю, что могу обновить до последней версии и исправить это, но по разным причинам я не могу обновить прямо сейчас.

У меня есть плагин аутентификации, который обрабатывает логины (я не использую таблицу #__users), в моем плагине я аутентифицирую пользователя / проход через веб-сервис Я хотел бы иметь возможность восстановить идентификатор сеанса в этот момент в плагине.

Я пробовал просто session_regenerate_id (), который обновляет его, но я теряю все данные сеанса и не могу войти. Я знаю, что Joomla использует свои собственные сессионные классы, но я не знаю, есть ли функция для этого.

Спасибо

1 Ответ

2 голосов
/ 17 февраля 2011

Использовать JSession::fork().

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

Все, что он действительно делает, это session_regenerate_id() в фоновом режиме, но прежде чем он это делает, сначала он активен.Делая это, вы не должны терять какие-либо данные (и если это так, то где-то может быть ошибка) ...

Для фиксации сеансов в Joomla 2.5 и Joomla 3.5 вы можете обратиться к решению, предложенному для фиксация сессии в Joomla 2.5

...