关心JWT安全

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

我可以尝试减less失效date,但是……只要用户的详细信息是相同的,每次产生的令牌也是一样的,这是不是真的? 那么到期日是什么时候,如果你最后还是以同样的道理结束呢? 我相信我在某处错过了这个观点。 指导将不胜感激。 谢谢。

一旦有人访问了智威汤逊,是否可以用来检索受保护的数据呢? 而不是获得访问JWT,就像使用chrome开发工具一样简单?

一般来说,如果用户可以访问他们自己的智威汤逊(JWT)应该不是什么问题 – 因为他们是被允许的人,并且应该有权访问该智能工具。 (这是开发工具允许你访问的,但不是其他人的标记。)

当其他人可以访问该用户的JWT时(例如,使用SSL / HTTPS显示其值时(例如,encryption阻止另一个用户嗅探stream量并检索JWT)),则会成为问题。 尽pipe这是一个相当广泛的话题,但是最终如果其他人可以访问一些随机用户的JWT,那么存在安全问题。 这不是严格相关的,但是我喜欢这个Auth0文章 ,它讨论了JWT和cookies之间的区别(你可能已经理解了 – 因此它可能是有用的/有趣的),以及一些相关的安全问题以及JWT如何适应图片。

我可以尝试减less失效date,但是……只要用户的详细信息相同,生成的令牌每次也是一样的,这是不是真的? 那么到期日是什么时候,如果你最后还是以同样的道理结束呢?

令牌的到期时间存储在令牌体内(在一个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. 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值的标记将不会正确validation,因此标记是不可用的。