首页 > 解决方案 > OAuthV2 应用程序如何保护来自授权服务器的回调免受重放攻击?

问题描述

我将从这里举个例子。假设Resource Owner想要授权Applicationexample-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

问题:如果其他人从步骤 2) 复制 URI 并向同一个 URI 发出请求怎么办?假设来自 的请求Attacker将在Resource Owner's 之前处理。例如,Attacker将相同的请求发送到:

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

在我看来,Application现在可以从 访问资源Resource Owner并与 共享它Attacker,特别是如果在验证Application后创建与请求者的会话code。这有任何意义吗?如何防范呢?

标签: securityoauthoauth-2.0

解决方案


为了利用这一点,攻击者首先需要获取重定向 url。这是困难的部分。重定向将从授权服务器发送到资源所有者,并且需要 HTTPS。

一旦攻击能够窥探到这一点,大多数安全性就会消失。


推荐阅读