【问题标题】:Is there a way for a hacker to abuse my refresh token?黑客有没有办法滥用我的刷新令牌?
【发布时间】:2021-06-15 09:49:19
【问题描述】:

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

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

【问题讨论】:

    标签: reactjs security cookies oauth-2.0 jwt


    【解决方案1】:

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

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

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

    这里是一些关于 CORS 的起始文档:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

    编码愉快!

    【讨论】:

      【解决方案2】:

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

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

      还可以查看this document by W3C,它提供了一些关于可用于您的应用程序的安全设置的指南。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-27
        • 2013-09-05
        • 2020-11-23
        • 1970-01-01
        • 1970-01-01
        • 2019-03-29
        • 2018-05-26
        • 2017-08-15
        相关资源
        最近更新 更多