【问题标题】:Concerned about JWT security关注智威汤逊安全
【发布时间】:2016-10-17 13:58:13
【问题描述】:

最近,我使用护照和 node.js 实现了 JWT 策略......但是,我开始担心这个概念。不是说一旦有人可以访问 JWT,就可以用它来检索受保护的数据吗?访问 JWT 不是像使用 chrome 开发工具一样简单吗?

我可以尝试减少到​​期日期,但是...不是说只要用户详细信息相同,每次生成的令牌也相同吗?那么,如果您最终还是要使用相同的令牌,那么到期日期的意义何在?我确信我在某处错过了这一点。指导将不胜感激。谢谢。

【问题讨论】:

    标签: node.js authentication passport.js jwt


    【解决方案1】:

    不是说一旦有人可以访问 JWT,就可以用它来检索受保护的数据吗?访问 JWT 不是像使用 chrome 开发工具一样简单吗?

    一般来说,如果用户可以访问他们自己的 JWT,这应该不是问题——因为他们是被允许并且应该有权访问该令牌的人。 (这是开发工具允许您访问的,但不允许其他人的令牌。)

    当其他人可以访问该用户的 JWT 时,就会出现问题,此时使用 SSL/HTTPS 之类的东西会显示其价值(例如,因为加密会阻止其他用户嗅探流量和检索 JWT)。虽然这是一个相当广泛的话题,但最终如果其他人可以访问一些随机用户的 JWT,那么就会存在安全问题,是的。这不是严格相关的,但我喜欢 this Auth0 article 讨论 JWT 和 cookie 之间的区别(您可能已经理解——因此它可能有用/有趣)和一些相关的安全问题以及 JWT 如何适应图片。

    我可以尝试减少到​​期日期,但是...不是说只要用户详细信息相同,每次生成的令牌也相同吗?那么,如果您最终还是要使用相同的令牌,那么到期日期的意义何在?

    令牌的到期时间存储在令牌的主体内(在exp 键下),因此每当生成具有不同到期时间的新令牌时,令牌的值都会发生变化。 RFC7519 声明 the "exp" (expiration time) claim identifies the expiration time on or after which the JWT MUST NOT be accepted for processing. The processing of the "exp" claim requires that the current date/time MUST be before the expiration date/time listed in the "exp" claim.,因此如果您使用的库在这方面表现正确,那么过去具有 exp 值的令牌将无法正确验证,因此该令牌不可用。

    【讨论】:

      猜你喜欢
      • 2021-07-15
      • 2016-09-21
      • 2017-01-30
      • 2020-12-27
      • 2019-03-09
      • 2015-05-25
      • 2015-04-03
      • 2023-03-10
      • 2015-10-16
      相关资源
      最近更新 更多