Как приложения OAuthV2 защищают от повторных атак на обратный вызов с сервера авторизации? - PullRequest
0 голосов
/ 04 мая 2020

Я возьму пример с здесь . Допустим, Resource Owner хочет разрешить Application example-app.com иметь доступ к некоторым его ресурсам.

1) Resource Owner будет направлен на URI в Authorization Server Например:

https://authorization-server.com/auth
 ?response_type=code
 &client_id=29352915982374239857
 &redirect_uri=https%3A%2F%2Fexample-app.com%2Fcallback
 &scope=create+delete
 &state=xcoiv98y2kd22vusuye3kch

2) Resource Owner будет аутентифицироваться с Authorization Server и будет перенаправлен на:

https://example-app.com/redirect
 ?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3
 &state=xcoiv98y2kd22vusuye3kch

Вопрос: Что если кто-то еще копирует URI из шага 2) и делает запрос на тот же URI? Предположим, что запрос от Attacker будет обработан до Resource Owner. Например, Attacker отправляет тот же запрос:

https://example-app.com/redirect
 ?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3
 &state=xcoiv98y2kd22vusuye3kch

Мне кажется, что Application теперь может получить доступ к ресурсам из Resource Owner и поделиться им с Attacker, особенно если Application создает сеанс с запросчиком после проверки code. Имеет ли это хоть какой-то смысл? Как защититься от этого?

1 Ответ

0 голосов
/ 04 мая 2020

Чтобы воспользоваться этим, злоумышленнику сначала нужно получить URL перенаправления. Это сложная часть. Перенаправление будет отправлено с сервера авторизации владельцу ресурса и требует HTTPS.

Как только атака сможет использовать sn oop, большая часть защиты выходит за пределы окна.

...