Ochrona sesji na potencjalnie zagrożonym koncie
Nie ma potrzeby przekierowywania do strony logowania, jeśli zarządzanie sesją po zmianie hasła odbywa się w bezpieczny sposób. Oznacza to, że dopóki wszystkie identyfikatory bieżącej sesji są unieważnione, a bieżąca sesja jest dołączona do nowego identyfikatora sesji (zwykle wystawiany jako token w pliku cookie uwierzytelniania - plik cookie jest wysyłany tylko do sesji, która właśnie zmieniła hasło), to tam nie ma ryzyka, że osoba atakująca, która jest już na koncie, pozostanie zalogowana.
Artykuł OWASP
Uzasadnienie artykułu OWASP zostało wyjaśnione poniżej. Nie ma nic złego w aspekcie bezpieczeństwa, jednak występują pewne problemy z użytecznością.
Funkcja resetowania hasła jest często używana, gdy użytkownik chce zabezpieczyć swoje konto.
Poprzez unieważnienie wszystkich istniejące sesje po zresetowaniu hasła, system upewnia się, że tylko osoba z nowym hasłem może się zalogować.
Załóżmy na przykład, że osoba atakująca, która uzyskała dostęp do konta przy użyciu starego hasła, jest zalogowana . Zresetowanie wszystkich sesji spowoduje wylogowanie atakującego.
Słyszę, że po co wylogowywać bieżącego użytkownika?
Powiedzmy, że atakujący korzysta z sesji bieżącego użytkownika, powiedzmy przy użyciu luki w zabezpieczeniach naprawy sesji. Oznacza to, że osoba atakująca ma tę samą sesję co rzeczywisty użytkownik. Zresetowanie bieżącej sesji zapewni również, że na koncie nie ma nikogo, kto nie powinien mieć dostępu.
Przekierowanie do strony logowania w powyższym cytacie tak naprawdę opisuje fakt, że należy wylogować użytkownika bieżącej i wszystkich sesji (ale nie ma ryzyka, że nie przestaniesz ich umieszczać w nowej sesji z nowym identyfikatorem).