Подтвердить что ты не робот

Почему не удается украсть токен доступа?

Я изучаю OAuth, и у меня есть вопрос в голове. Я не могу найти anwser.

Я понял, что токен запроса разрешает или не использует приложение для использования API. Но как только пользователь получит токен доступа, что произойдет, если кто-то украдет его токен доступа?

Представьте, что у нас есть что-то вроде http://www.example.com/api/article/1?access_token= ****** access_token ******

Если я дам этот url другому пользователю, другой получит мой доступ, и поэтому API больше не будет защищен?

4b9b3361

Ответ 1

Короткий ответ: Да, для OAuth2 - у любого, у кого есть действительный access_token, будет доступ к ресурсам, назначенным этим токеном. Как долго зависит от OAuth2 реализация поставщика.

Длинный ответ, как для OAuth1, так и для 2:

Когда дело доходит до OAuth 1 токена доступа недостаточно. Вам также понадобится секретный токен доступа, а также ключ пользователя и секрет. По-прежнему хорошо держать токены доступа конфиденциальными и ограничивать их объем и время действия, но вы не можете использовать токен доступа без секретов клиента и токена. OAuth 1 не требует использования SSL, поскольку криптография встроена в спецификацию.

OAuth 2 отличается - возможно, более важно, чтобы токены доступа были конфиденциальными. Поэтому поставщик API должен гарантировать, что токены доступа, которые в OAuth2 также известны как токены-носители, действительны только как можно короче. Эти жетоны работают как пароли, и если перехват может быть немедленно использован злоумышленником. Поэтому спецификация OAuth2 (с маркером-носителем) требует, чтобы вся связь осуществлялась через SSL - поскольку криптография не была встроена в спецификацию. Как правило, токены доступа имеют кратковременную достоверность, которая может быть обновлена ​​с помощью "обновляющего токена", который имеет более длительный срок действия, но переносится только тогда, когда потребительский токен принимается потребителем, и когда токен-носитель обновляется.