黑客有没有办法滥用我的刷新令牌?

时间:2021-03-18 01:32:41

标签: reactjs security cookies oauth-2.0 jwt

大家好,我最近正在构建一个网络应用程序,它基本上是一个购物网站。安全是我最关心的问题之一。我将使用 JWT(访问令牌和刷新令牌)。

我将通过这种方式实现它:服务器将向登录用户返回访问令牌和刷新令牌。对于前端,我使用的是 React,所以我要将访问令牌(短暂的)保存在内存中(如 React 上下文)。我正在考虑将刷新令牌(长寿命)存储在 cookie 中,所以我想知道有没有一种方法可以让黑客提取 cookie,然后在 Postman 等某些客户端上使用它并发送请求以获取访问令牌并写入一些 Javascript 来获取访问令牌?

2 个答案:

答案 0 :(得分:0)

你的问题听起来一点也不愚蠢!这是一个很好的问题。有一种方法可以让黑客提取 cookie 是的。 Cookie 窃取是一个已知的安全问题。

然而,解决此问题的方法是启用阻止任何跨源 API 操作的 CORS。通过这样做,您可以创建一个白名单,以启用您的网络应用程序的 URL。

我建议在您的开发服务器上禁用此功能以启​​用 localhost 以加快开发速度,然后在生产中启用它。

以下是一些关于 CORS 的入门文档:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

快乐编码!

答案 1 :(得分:0)

也许考虑将这两个令牌保存在内存中?如果您希望用户在返回您的应用程序时仍保持登录状态,您可以依靠 SSO 会话无缝登录,而不是在后台使用刷新令牌。

看看这些SPA security best practices。另外,我建议不要使用 JWT 作为访问和刷新令牌,这样就没有人可以读取 JWT 中保存的数据。您可以在 API 中使用令牌自省或实现 Phantom Token Approach

另请参阅 this document by W3C,它提供了一些有关可用于应用程序的安全设置的指南。