Может ли атака с фиксацией сеанса в приложении Laravel быть защищена с помощью session_regenerate? - PullRequest
0 голосов
/ 13 сентября 2018

Я использую сессию в приложении laravel, которое имеет функцию входа в систему.

Сеанс хранится в БД.

Мой сеанс приложения генерирует имя сеанса "laravel_session".

Возможно, это имя по умолчанию. (Я проверил это в отладчике Chrome.)

Я думал, что это может привести к фиксации сессии.Итак, я использую сеанс-> регенерировать () после процесса Loggin.Тем не менее, он генерирует "laravel_session" снова. Работает?Я проверил таблицу сеансов после сеанса-> регенерировать () и обнаружил, что столбец "id" изменен.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Laravel уже содержит встроенные средства защиты от фиксации сессий и встроенную функцию, позволяющую вам сделать это самостоятельно:

https://laravel.com/docs/5.6/session

Laravel автоматически восстанавливает идентификатор сеанса во время аутентификации, если вы используете встроенный LoginController; однако, если вам нужно вручную восстановить идентификатор сеанса, вы можете использовать метод регенерации.

$request->session()->regenerate();
0 голосов
/ 14 сентября 2018

Существует огромная разница между session_name() (который называет cookie) и session_id() (который должен быть случайным, непредсказуемым значением).

Ваше имя сеанса общедоступно.Секретный идентификатор сессии должен быть секретным.

(Думайте об этом как о key => value паре.)

В любом случае, точка session_regenerate_id(true); и директива конфигурации use_strict_modeчтобы смягчить проблемы с фиксацией сессии.Вы всегда должны заново генерировать идентификаторы сеанса, когда пользователь меняет свой уровень привилегий (вход, выход и т. Д.).

...