@frontendo

Как защитить пользователя от кражи jwt токена в laravel?

В ларе есть реализация jwt-auth. В ней предусмотрены срок истечения токена и его обновление jwt.refresh. Но как быть, если токен был похищен злоумышленником и до истечения срока или после (при неакивности пользователя) обменян на новый. Таким образом пользователь уже не может обновить свой старый токен (так как его обновил злоумышленник) и будет заново получать токен путем ввода логина и пароля. А вор будет беспрепятственно пользоваться аккаунтом, периодически обновляя токен. Как решить такую проблему? или может она уже решена?
  • Вопрос задан
  • 863 просмотра
Пригласить эксперта
Ответы на вопрос 1
dskozin
@dskozin
Здравствуйте!
Вопрос реальный (т.е. вы с такой ситуацией столкнулись) или гипотетический?

Насколько я понимаю процесс авторизации происходит примерно следующим образом:
1. Пользователь вводит логин и пароль - ему выдается токен1
2. Проходит какое-то время токен1 устаревает, и в течении некоторого времени после этого сервер позволяет сделать рефреш, т.е. по токену1 получить токен2, при этом никакие функции кроме рефреша становятся недоступны.
3. Пользователь пользуется токеном2

Если злоумышленник крадет токен1 и делает рефреш - он получает токен2, который использует в нехороших целях. При этом он может делать и дальше рефреши по истечению срока действия токенов.

Но! Реальный пользователь пройдя процедуру авторизации получит токен3, который (если) злоумышленник не знает, а следовательно и не сможет получить рефреш.

Т.е., насколько понимаю я, злоумышленник может пользоваться токеном только до новой авторизации реального пользователя (или до тех пор пока реальный пользователь не сделает рефреш).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы