在OAuth中,初始授权请求具有state
参数。显然它是出于安全原因,但我并不真正了解它所保护的内容......例如,on GitHub此参数的描述是:
不可思议的随机字符串。它用于防止跨站点请求伪造攻击。
从我所看到的,授权请求中的状态只是作为参数传递给重定向URL,如下所示:
http://<redirect_url>?code=17b1a8df59ddd92c5c3b&state=a4e0761e-8c21-4e20-819d-5a4daeab4ea9
有人可以解释这个参数的确切目的吗?
答案 0 :(得分:8)
state参数用于防止XSRF。您的应用程序生成随机字符串,并使用state参数将其发送到授权服务器。授权服务器发回状态参数。如果两个状态相同=&gt;好。如果状态参数是不同的,则其他人已发起请求。
Google的例子可能更清晰:https://developers.google.com/accounts/docs/OAuth2Login?hl=fr#createxsrftoken