[英]How OAuthV2 applications protect from replay attacks on the callback from the authorization server?
我将从这里举个例子。 假设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
后与请求者创建 session。 这有任何意义吗? 如何防范呢?
为了利用这一点,攻击者首先需要获得重定向 url。 这是困难的部分。 重定向将从授权服务器发送到资源所有者,并且需要 HTTPS。
一旦攻击能够窥探到这一点,window 中的大部分安全性就会消失。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.