为什么Web OA的Google OAuth 2.0文档没有提及“状态”参数?

时间:2015-11-20 05:47:13

标签: google-oauth

https://developers.google.com/identity/protocols/OAuth2WebServer#handlingresponse阅读Google OAuth文档时,我很惊讶(或者至少好奇为什么)state没有文档。即使在非隐式流程中,防止CSRF攻击(http://tools.ietf.org/html/rfc6819#section-4.4.1.8)似乎也很重要。

我是否遗漏了一些暗示state param并非绝对必要的内容?似乎应该在文档中强调它,以便人们不要将他们的应用程序留在CSRF漏洞中。

1 个答案:

答案 0 :(得分:2)

它被提及但仅适用于HTTP / Rest示例。看一下选择了HTTP / Rest的重定向部分。

  

重定向到Google的OAuth 2.0服务器

     

当您的应用程序需要访问用户的数据时,请重定向用户   到谷歌的OAuth 2.0服务器。

     

HTTP / REST

     

生成一个URL以请求Google的访问权限   位于https://accounts.google.com/o/oauth2/v2/auth的OAuth 2.0端点。   此端点可通过HTTPS访问;普通的HTTP连接是   拒绝。

     

Google支持的一组查询字符串参数   Web服务器应用程序的授权服务器是:

     

...省略的文字......

     

state - 任何字符串 - 提供可能对您有用的任何状态   收到回复后的申请。 Google授权   服务器往返此参数,因此您的应用程序会收到   它发送的价值相同。缓解跨站点请求伪造   (CSRF),强烈建议在其中加入防伪标记   国家,并在答复中确认。请参阅OpenID Connect   如何做到这一点的例子。