考虑OAuth-2.0授权码授权协议。
正如Figure 3 : Authorization Code Flow
上的标准草案http://tools.ietf.org/html/ietf-oauth-v2-26所述,Client
代表Authorization Code
收到来自User-Agent
的令牌。假设User-Agent
故意向Client
发送错误代码。如果Authorization Server
通过禁止brute force
一段合理的时间(通过IP或Access Token
主机名)来Client
获取Redirection URI
的方式,可以提供一些保护。如果在我们的情况下,Client
应该处理来自多个不同User-Agent's
的大量请求,Client
将停止为所有用户提供服务,如果只存在一个恶意用户。
因此Client
成为上述情况的瓶颈。
====编辑==== 任何想法如何规避瓶颈问题?
答案 0 :(得分:1)
我相信你在问: “如何规避此问题而不是将授权码公开给用户代理?”
这是不可能的。 OAuth请求流经用户的浏览器,因此您无法阻止向用户公开授权代码。
如果您是此类攻击的受害者,我建议您将相同的保护措施放入您的客户端,以便OAuth提供商将其置于其授权服务器中。即,停止允许从滥用您服务的用户代理发送新授权代码。如果他们每小时发送超过3个无效令牌,则禁止他们一两个小时(按IP地址)。当然,这可能导致您拒绝从代理服务器访问您的站点,因为代理服务器上有一个坏用户,但这就是生命。