OAuth授权请求中“state”参数的用途是什么

时间:2014-09-30 23:48:47

标签: security oauth

在OAuth中,初始授权请求具有state参数。显然它是出于安全原因,但我并不真正了解它所保护的内容......例如,on GitHub此参数的描述是:

  

不可思议的随机字符串。它用于防止跨站点请求伪造攻击。

从我所看到的,授权请求中的状态只是作为参数传递给重定向URL,如下所示:

http://<redirect_url>?code=17b1a8df59ddd92c5c3b&state=a4e0761e-8c21-4e20-819d-5a4daeab4ea9

有人可以解释这个参数的确切目的吗?

1 个答案:

答案 0 :(得分:8)

state参数用于防止XSRF。您的应用程序生成随机字符串,并使用state参数将其发送到授权服务器。授权服务器发回状态参数。如果两个状态相同=&gt;好。如果状态参数是不同的,则其他人已发起请求。

Google的例子可能更清晰:https://developers.google.com/accounts/docs/OAuth2Login?hl=fr#createxsrftoken