Как предотвратить обновление украденного токена доступа

Сценарий: у вас есть токен обновления, который действителен в течение более длительного периода времени и токен доступа, который действителен в течение более короткого периода времени.

Настройка: существует клиент, сервер приложений и сервер аутентификации.

  • Клиент сохраняет токен доступа.
  • Сервер приложений хранит токен обновления.
  • Сервер аутентификации передает токен обновления + доступа.

Одно из преимуществ заключается в том, что украденный токен доступа может использоваться только на время, когда оно действительно.

Скажем, хакер крадет токен доступа, который действителен в течение 30 минут. Когда хакер делает запрос с действительным, но истекшим красным маркером доступа через 30 минут, сервер приложений обновляет его с помощью токена обновления, таким образом, хакер получает новый действительный токен и не истекший токен доступа.

Как это можно предотвратить?

+1
источник поделиться
2 ответа

Сервер приложений не должен иметь токен обновления.

В OAuth2.0 client должен хранить токен обновления.

Чтобы использовать токен обновления, чтобы отличить новый токен доступа, client должен представить токен обновления (вместе с идентификатором клиента и секретным ключом) на сервер авторизации.

0
источник

Невозможно остановить хакера от обновления токена, если

  1. Исходный пользователь сбросил пароль, и сервер AUTH удалил все предыдущие токены обновления.

  2. Уменьшите время действия токена обновления ближе к действительности accesstoken.

В обоих случаях мы полагаемся на недействительность токена обновления.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос