JSm*_*ith 10 oauth-2.0 openid-connect google-signin
我一直在网上寻找答案,但找不到明确的答案。由于我不太了解 CSRF 攻击,并且state
OAuth 2.0 中的参数是为了避免这种攻击而制作的,我只是想知道是否state
需要在客户端生成参数并将值放在本地存储或后端服务器上,然后将其存储到一个会话变量,然后我将其返回到客户端以创建我的 URL。第一个解决方案似乎是最好的,但它安全吗?
任何帮助是极大的赞赏。
Kav*_*uwa 12
有关状态参数的更多信息可以从此答案中找到。
在哪里生成状态以及在哪里存储状态将取决于应用程序的性质。无论客户端类型如何,客户端必须做的是验证授权码响应中的状态参数。
对于不包含后端的单页应用程序,必须在浏览器本身中生成并存储状态。一旦响应到达,就必须比较状态值。
对于本机应用程序(例如:移动应用程序),状态可以存储在应用程序内存中。它可以附加在授权请求中。当响应到来时,可以从内存中验证它
如果应用程序需要,状态可以存储在后端(例如:服务器)中。这可以被认为更安全(与 SPA 相比),因为除了请求本身之外没有人可以拦截/获取该值。一旦发生重定向,后端就可以验证响应参数。此外,它还可用于关联客户端会话。
此外,窃取状态值仅对尝试进行 CSRF 攻击的一方有价值。但请注意生成无法猜测的状态值。进一步阅读存储 - 3.6。“状态”参数
归档时间: |
|
查看次数: |
8394 次 |
最近记录: |