【发布时间】:2020-05-05 00:57:52
【问题描述】:
我将以here 为例。假设Resource Owner 想要授权Application example-app.com 访问他的一些资源。
1) Resource Owner 将被定向到Authorization Server 中的一个URI,例如:
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
问题:如果其他人复制了第 2 步中的 URI 并向同一个 URI 发出请求,该怎么办?假设来自Attacker 的请求将在Resource Owner 之前处理。例如,Attacker 发送相同的请求到:
https://example-app.com/redirect
?code=g0ZGZmNjVmOWIjNTk2NTk4ZTYyZGI3
&state=xcoiv98y2kd22vusuye3kch
在我看来,Application 现在可以访问来自Resource Owner 的资源并与Attacker 共享,特别是如果Application 在验证code 后创建与请求者的会话.这有任何意义吗?如何防范?
【问题讨论】: