V3.3.3 Session Termination
Requirement:#
Verify that the application gives the option to terminate all other active sessions after a successful password change (including change via password reset/recovery), and that this is effective across the application, federated login (if present), and any relying parties.
Explanation:#
Переменные сеанса решают эту проблему, сохраняя информацию о пользователе, которая будет использоваться на нескольких страницах (например, имя пользователя, любимый цвет и т. д.). По умолчанию переменные сеанса сохраняются до тех пор, пока пользователь не закроет браузер.
Переменные сеанса содержат информацию об одном отдельном пользователе и доступны для всех страниц в одном приложении.
Remediation:#
Чтобы убедиться, что все другие активные сеансы завершаются после успешной смены пароля, вы можете реализовать следующее исправление:
- Отслеживайте все активные сеансы пользователя. Эта информация может храниться в базе данных или в памяти, в зависимости от ваших требований.
- Когда пользователь меняет свой пароль либо в процессе изменения пароля, либо в процессе сброса/восстановления пароля, все другие активные сеансы для этого пользователя становятся недействительными.
- Для любого федеративного входа и проверяющих сторон убедитесь, что пользователь повторно аутентифицирован перед доступом к любым защищенным ресурсам. Это гарантирует, что любые активные сеансы с этими сущностями будут завершены.
В этом примере, когда пользователь меняет свой пароль, пароль обновляется в базе данных, все другие активные сеансы для этого пользователя становятся недействительными, и пользователь перенаправляется на страницу входа. Это обеспечит повторную аутентификацию пользователя перед доступом к любым защищенным ресурсам, эффективно завершая любые активные сеансы с федеративными поставщиками входа в систему и проверяющими сторонами.