I'll take the example from here. Let's say the Resource Owner
wants to authorize the Application
example-app.com to have access to some of his resources.
1) The Resource Owner
will be directed to a URI in the Authorization Server
, for example:
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) The Resource Owner
will authenticate with the Authorization Server
and will be redirected to:
https://example-app.com/redirect
?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3
&state=xcoiv98y2kd22vusuye3kch
Question: What if someone else copies the URI from Step 2) and makes a request to that same URI? Assume that the request from the Attacker
will be processed before the Resource Owner
's. For example, an Attacker
sending the same request to:
https://example-app.com/redirect
?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3
&state=xcoiv98y2kd22vusuye3kch
It looks to me that the Application
can now access the resources from the Resource Owner
and share it with the Attacker
, specially if the Application
creates a session with the requester once the code
is validated. Does that make any sense? How to protect against that?