Oauth 2.0 Google OAuth 2.0实现-注册

Oauth 2.0 Google OAuth 2.0实现-注册,oauth-2.0,google-oauth,Oauth 2.0,Google Oauth,在Google开发者控制台中,当您创建用于OAuth 2.0的新应用凭据并指定web应用时,它会请求您注册回调URI和JavaScript源代码 我不清楚是否需要注册这些 对于回调URI,这可能会阻止向用户提供恶意页面的第三方获得授权代码。但是,客户端id和密码仍然隐藏在应用程序服务器中,因此恶意应用程序是否无论如何都无法执行任何操作 此外,如果已经注册了回调URI,那么单独注册JS源代码可以实现什么目的呢。与回调URI注册不同,OAuth 2.0规范没有提到这一点,这是Google选择实现的

在Google开发者控制台中,当您创建用于OAuth 2.0的新应用凭据并指定web应用时,它会请求您注册回调URI和JavaScript源代码

我不清楚是否需要注册这些

对于回调URI,这可能会阻止向用户提供恶意页面的第三方获得授权代码。但是,客户端id和密码仍然隐藏在应用程序服务器中,因此恶意应用程序是否无论如何都无法执行任何操作

此外,如果已经注册了回调URI,那么单独注册JS源代码可以实现什么目的呢。与回调URI注册不同,OAuth 2.0规范没有提到这一点,这是Google选择实现的


谢谢你的帮助

当您请求令牌时,该令牌将被传递到回调URL。通过仅允许在API控制台中配置的回调URL,可以防止恶意用户欺骗请求并将令牌发送给第三方。我怀疑您遗漏了OAuth的一个方面,即回调是通过浏览器重定向发送的,因此很容易伪造

回调URL是OAuth服务器流的一部分

当您使用客户端(Javascript)OAuth流时,JS源代码将发挥作用。它们确保任何OAuth请求都来自于源于您站点的页面

服务器流是


好的,我想我通过阅读规范了解了更多

它是为了防止同一客户端的用户进行攻击攻击者可以在同一客户端上创建帐户并启动身份验证流,但他用自己的URI替换重定向URI

然后他诱使受害者跟随链接授权他们正在使用的同一合法客户端。但是,身份验证代码现在被发送到攻击者URI


然后,攻击者通过向客户端提供身份验证代码来完成该流,客户端使用该代码完成获取令牌的流。但是,客户端可能会将此令牌与攻击者关联,从而允许攻击者模拟受害者。

关于服务器流中的回调URL,令牌请求还必须发送客户端id和客户端机密。因此,没有这些信息的令牌请求不会返回令牌。那么安全性是否会丧失呢?p.s.感谢您处理JS源代码-我不确定为什么您需要JS源代码和回调,但我看到google有一个web应用程序注册页面,可以使用服务器/客户端流。仍然希望通过提前注册回调来了解增加的安全性。谢谢在服务器流中,客户端详细信息通过https从服务器发送到google。请看我添加到答案中的流程图。对……我仍然没有看到注册重定向URL所增加的安全性。恶意用户可以将授权代码发送给第三方。但是,如果不提供客户端id和客户端机密,恶意用户如何获取令牌。参考上图,“令牌交换代码”包括机密和重定向url。如果重定向被欺骗,令牌响应(可能是持久刷新令牌)将转到恶意站点,同意,但出于完整性考虑:该攻击不限于同一客户端用户的攻击者;任何攻击者都可以这么做Hey Hans,我不确定来自不同客户端的攻击者如何访问客户端id和密码?这是我在上面的对话中提出的问题。规范中描述的攻击假设相同的客户端,因此有一组客户端凭据。好吧,也许我只是误解了:我的意思是攻击者不需要在客户端拥有帐户(这通常是攻击同一客户端上其他帐户的良好开端),但我猜您指的是“同一客户端的用户”攻击者仅通过受害者想要使用的同一客户端应用攻击;在后一种情况下,我同意