安全存储刷新令牌的位置

时间:2018-02-08 16:33:13

标签: oauth-2.0 refresh-token

where to store - access token and refresh token in OAuth 2.0是我正在寻找的答案,但我有些事情对我来说不清楚,或者我可能只是过度思考它。

假设我有一个调用REST api的网站X,并将刷新令牌作为HttpOnly cookie存储在浏览器中。如果恶意攻击者M进入其他已经以X登录X的计算机,M可以去寻找cookie并窃取该刷新令牌。然后M将能够检索他想要的所有令牌,他只需要该应用程序的客户端ID和客户端秘密,他可以从应用程序的任何其他用户获得,例如他自己M只是看着进行GET新访问令牌调用时标头的值。这是对的吗?

1 个答案:

答案 0 :(得分:1)

您不应在浏览器中运行的应用程序中使用身份验证代码授权。 Implicit grant专为此类应用而设计:

  • 要从刷新令牌获取访问令牌,您需要向需要身份验证的/token端点发出请求(客户端ID和客户端密钥),并且您无法在浏览器中保密。
  • /token端点通常不支持CORS标头 - 您无法通过JavaScript XHR调用访问它。
  • 要在原始访问令牌过期时获取新的访问令牌,您可以使用prompt=none /auth请求参数。