【发布时间】:2015-12-03 22:30:13
【问题描述】:
我的问题可能看起来很愚蠢,但我真的不明白 - 从请求中捕获 redirect_uri 并将其与客户端表中指定的 URI 进行比较的目的是什么?是因为安全问题吗?
【问题讨论】:
我的问题可能看起来很愚蠢,但我真的不明白 - 从请求中捕获 redirect_uri 并将其与客户端表中指定的 URI 进行比较的目的是什么?是因为安全问题吗?
【问题讨论】:
预注册重定向 URI 本身是一种安全措施,因为 OAuth 2.0 中的授权请求未签名。攻击者可以通过网络钓鱼诱骗用户单击一个链接,该链接会导致一个授权请求,其中 redirect_uri 指向他们控制的站点。
在请求中发送redirect_uri 本身并不能达到安全目的,而只是为了让授权服务器知道客户端想要在哪里接收授权响应,以防为该特定客户端注册了多个重定向 URI .
无论如何,redirect_uri 参数在规范中是可选的。如果只有一个注册,那么redirect_uri 参数可以从请求中省略。如果注册了多个重定向 URI,但请求中没有提供重定向 URI,则结果未指定:AS 可能会选择第一个、任何一个或一个都不选择。
【讨论】: