【问题标题】:What is the point of redirect_uri for the Google get token call?谷歌获取令牌调用的 redirect_uri 有什么意义?
【发布时间】:2012-10-26 22:51:20
【问题描述】:

我有一个使用 Google API 的网络应用。身份验证过程对 google 进行了两次调用,第一次获取code,第二次将code 交换为token。两个调用都采用redirect_uri 参数。第一次调用按我的预期使用这个参数,重定向回redirect_uri,但是,第二次调用,获取令牌,没有重定向,验证它似乎忽略了这个参数,那么它的意义何在?

【问题讨论】:

    标签: api oauth-2.0


    【解决方案1】:

    访问令牌请求中的redirect_uri 参数在OAuth 2.0 specification 中描述为REQUIRED。

    其背后的原因在同一文档的10.6部分有详细描述。简而言之:

    1. 攻击者可以通过操纵授权请求的request_uri获取授权码。唯一能注意到这个技巧的两方是受害者(合法用户)和服务器。客户仍然不知道这些操纵。
    2. 即使使用该代码,攻击者也无法将其交换为访问令牌,但它可以尝试通过代表自己发送带有被盗代码的“回调响应”来欺骗客户端。
    3. 如果客户端可以将接收到的代码交换为令牌,它将授予攻击者访问受害者数据的权限。幸运的是,由于客户端的redirect_uri 与服务器看到的不匹配,请求将被拒绝。

    【讨论】:

    • 所以基本上它在第二次调用中只是为了确认它与第一次调用匹配?老实说,我真的不明白为什么攻击者不能同时改变两者,但是谢谢:)
    • 另外我认为你的意思是链接到4.1.3
    • 好的,我更改了链接,谢谢。关于您的问题,发送第二个请求的不是攻击者,而是客户端(意思是您的网络应用程序),攻击者无法发送这样的请求,因为它不知道client_secret
    猜你喜欢
    • 2016-05-20
    • 2017-11-13
    • 1970-01-01
    • 2019-01-29
    • 2013-07-20
    • 2020-07-26
    • 2016-04-19
    • 2013-07-21
    • 1970-01-01
    相关资源
    最近更新 更多