在谷歌开发人员控制台中,当您创建在OAuth 2.0中使用的新应用程序凭据并指定web应用程序时,它会请求您注册回调URI和JavaScript来源。
我对注册这些内容的必要性没有一个确切的理解。
对于回调URI,这可能会阻止向用户提供恶意页面的第三方获得授权码。但是,客户端id和密钥仍然隐藏在应用程序服务器中,所以恶意应用程序不是也无法执行任何操作吗?
此外,如果已经注册了回调URI,那么单独注册JS源又能完成什么呢?与回调URI注册不同,OAuth 2.0规范中没有提到这一点,它是谷歌选择实现的。
谢谢你的帮助!
发布于 2014-09-23 18:19:34
当您请求令牌时,该令牌将被传递到回调URL。通过只允许您在API控制台中配置的回调URL,您可以防止恶意用户伪造请求并将令牌发送给第三方。我怀疑你错过了OAuth的一个方面,那就是回调是通过浏览器重定向发送的,所以很容易伪造。
回调URL是OAuth服务器流的一部分。
当您使用客户端(Javascript) OAuth流时,JS Origins就会发挥作用。它们确保任何OAuth请求都来自您站点上的页面。
服务器流是...

发布于 2014-12-27 00:32:15
好的,我想我从阅读规范中理解了更多。https://www.rfc-editor.org/rfc/rfc6749#section-10.6
这是为了防止同一客户端的用户的攻击攻击者可以在同一客户端创建帐户并启动身份验证流,但他将重定向URI替换为他自己的URI。
然后,他诱使受害者跟随链接,授权他们使用的同一合法客户端。但是,现在会将授权码发送给攻击者URI。
然后,攻击者通过将认证码提供回客户端来完成流,客户端使用该验证码完成获取令牌的流。但是,客户端可能会将此令牌与攻击者相关联,从而允许攻击者冒充受害者。
https://stackoverflow.com/questions/25979742
复制相似问题