「应用安全」OAuth和OpenID Connect的全面比较(24)

8.重定向URI

8.1 。 重定向URI验证

2014年5月 , 获博士学位 。 新加坡的学生发表了一篇文章 , 它引起了人们对“OAuth中的漏洞?”的讨论 , 这是一个关于所谓的Covert Redirect的问题 。 那些正确理解OAuth 2.0的人很快意识到这不是由于规范中的漏洞而是由于不正确的实现 。 然而 , 该主题让很多人感到不安 , OAuth领域的专家无法帮助编写解释性文档 。 约翰布拉德利先生的“隐蔽重定向及其对OAuth和OpenID Connect的真正影响”就是其中一个文件 。

如果未正确处理重定向URI , 则会出现安全问题 。 相关规范中描述了如何处理重定向URI , 但很难正确实现它 , 因为有许多事情要关注 , 例如 , (a)RFC 6749的要求和OpenID Connect的要求是不同的(b) )必须考虑客户端应用程序的application_type属性的值 。

如何正确处理重定向URI的部分取决于实现者如何仔细和详尽地阅读相关规范 。 因此 , 读取部件的实现代码可以很好地猜测整个授权服务器的实现质量 。 所以 , 每个人都尽最大努力实施它!

......如果我冷冷地抛弃了你 , 到目前为止我读过我的长篇文章 , 我会感到很遗憾 , 所以我向你展示了Authlete的实施诀窍 。 以下是处理授权请求中包含的redirect_uri参数的伪代码 。 请注意 , 伪代码不必分解为可浏览性的方法 , 但在实际的Authlete实现中 , 代码流很好地分解为方法 。 因此 , 出于性能目的 , 实际代码流与伪代码不同 。 (如果实际的实现包含如此多的嵌套if和for伪像 , 那将是一种耻辱 。 )

推荐阅读