Javascript Oauth2-如果黑客知道访问令牌,他能伪造谷歌应用程序引擎请求吗

Javascript Oauth2-如果黑客知道访问令牌,他能伪造谷歌应用程序引擎请求吗,javascript,google-app-engine,oauth-2.0,google-cloud-platform,Javascript,Google App Engine,Oauth 2.0,Google Cloud Platform,我正在Google App Engine上开发应用程序,正在研究OAuth2.0的详细信息。我的问题是:如果黑客截获OAuth2.0访问令牌,他能伪造来自Google云控制台中定义的授权JavaScript源之一的请求吗 如果不清楚的话,可以提供更多的细节:在谷歌云控制台中,您可以定义一个OAuth2.0客户端id,并使用谷歌的JSAPI完整流将其与javascript一起发送。该过程的一部分是获取一个访问令牌,然后使用该令牌对后续请求进行身份验证。作为一个额外的安全层,所有请求都需要来自您在云

我正在Google App Engine上开发应用程序,正在研究OAuth2.0的详细信息。我的问题是:如果黑客截获OAuth2.0访问令牌,他能伪造来自Google云控制台中定义的授权JavaScript源之一的请求吗

如果不清楚的话,可以提供更多的细节:在谷歌云控制台中,您可以定义一个OAuth2.0客户端id,并使用谷歌的JSAPI完整流将其与javascript一起发送。该过程的一部分是获取一个访问令牌,然后使用该令牌对后续请求进行身份验证。作为一个额外的安全层,所有请求都需要来自您在云控制台中定义的特定来源。因此,只接受来自该域的请求

但我想知道,如果黑客知道从我的一个用户那里获得访问令牌,那么请求仍然需要来自授权来源

然后,黑客可以使用chrome javascript控制台来调整javascript,并使用用户的访问令牌进行恶意调用,就好像他是偷令牌的用户一样


在我看来,请求来自授权的JS源,并带有有效的OAuth2.0访问令牌。我遗漏了什么?

对于appengine中的OAuth2.0,用户只是同意应用程序仅代表他使用服务。但真正的通信是在AppEngine上运行的JavaScript应用程序和服务提供商之间的通信。用户不包括在调用中,而是代表用户调用API的应用程序

请通过下面的链接了解整个概念


是的,一般来说,窃取令牌会使任何人都可以访问web服务。这同样适用于身份验证cookie和/或标头。为了防止令牌被盗,用户和服务之间的所有通信都应该通过https。源代码在浏览器的javascript引擎中验证,如果请求在浏览器外部伪造,则不会验证策略。这取决于访问令牌的类型。如果是不记名代币,答案是肯定的。如果是MAC令牌或加密令牌JOSE令牌,这是不够的,因为这些令牌使用签名和可选的加密算法。@FlorentMorselli JOSE令牌如何改变任何事情?如果一个黑客偷了一个加密的令牌,这和一个未加密的令牌被偷有什么不同?我想写的是POP令牌,而不是JOSE令牌。很抱歉。嗨,我已经浏览了那个页面,它的Java版本。我确实理解这些概念。然而,问题更多的是,如果黑客窃取令牌,他可以伪造请求,不管是从python后端还是从JS中的html页面直接转到google api,而不是你自己的应用引擎后端。先前的评论承认这一点。