Security '的目的是什么;州';OAuth授权请求中的参数

Security '的目的是什么;州';OAuth授权请求中的参数,security,oauth,Security,Oauth,在OAuth中,初始授权请求有一个状态参数。显然是出于安全原因,但我真的不明白它保护了什么。。。例如,此参数的描述为: 不可用的随机字符串。它用于防止跨站点请求伪造攻击 据我所见,授权请求的状态只是作为参数传递给重定向URL,如下所示: http://<redirect_url>?code=17b1a8df59ddd92c5c3b&state=a4e0761e-8c21-4e20-819d-5a4daeab4ea9 http://?code=17b1a8df59ddd92c

在OAuth中,初始授权请求有一个
状态
参数。显然是出于安全原因,但我真的不明白它保护了什么。。。例如,此参数的描述为:

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

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

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

有人能解释一下这个参数的确切用途吗?

状态参数用于防止XSRF。应用程序生成一个随机字符串,并使用state参数将其发送到授权服务器。授权服务器发回状态参数。如果两种状态相同=>OK。如果状态参数不同,则其他人已启动请求


谷歌的例子可能更清楚:

“其他人发起了请求”:谢谢,这就是我所缺少的。我不在web应用程序的上下文中,因此它不适用于我的情况(我只是在桌面应用程序的WebBrowser控件中检测到重定向,没有人会向我发送请求…)Au fait,tu es le meziantou de Developppez.com?的开发人员还使用状态参数存储有关以前访问过的页面的信息,登录后将用户重定向回那里,例如:
{“come_from”:“/dashboard”}
。他们对其进行base64编码以使其URL安全,然后将其用于
状态
参数。@jeverling这不是可以猜测的吗?@SriramKailasam,是的,你是对的,它是可以猜测的。您是对的,
来自
不适合作为XSRF令牌。但是我认为在这个插件的情况下,他们没有使用XSRF令牌的
state
参数。我不认为有任何东西会阻止您存储XSRF令牌,以及
状态
参数中的
来自
之类的内容。另请参阅