- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
最近,我使用 Passport 和 Node.js 实现了 JWT 策略...但是,我开始担心这个概念。一旦有人可以访问 JWT,就可以使用它来检索 protected 数据,这不是真的吗?访问 JWT 不是像使用 Chrome 开发工具一样简单吗?
我可以尝试缩短到期日期,但是……难道只要用户详细信息相同,每次生成的 token 也会相同吗?那么,如果您最终会得到相同的 token ,那么到期日有什么意义呢?我确信我在某个地方错过了重点。指导将不胜感激。谢谢。
最佳答案
Isn't it true that once someone has access to the JWT, it can be used to retrieve protected data? And isn't gaining access to the JWT, as easy as using chrome dev tools?
一般来说,如果用户可以访问他们自己的 JWT,那么这应该不是问题 - 因为他们是被允许并且应该有权访问该 token 的人。 (这是开发工具允许您访问的内容,但不允许您访问其他人的 token 。)
当其他人可以访问该用户的 JWT 时,这就会成为一个问题,此时使用 SSL/HTTPS 之类的东西就会显示出其值(value)(例如,因为加密会阻止其他用户嗅探流量并检索 JWT)。这是一个相当广泛的主题,需要尝试涵盖,但最终如果其他人可以访问某个随机用户的 JWT,那么就会存在安全问题,是的。这并不严格相关,但我喜欢 this Auth0 article其中讨论了 JWT 和 cookie 之间的差异(您可能已经了解 - 因此它可能有用/有趣)以及一些相关的安全问题以及 JWT 如何适应这种情况。
I could try and reduce the expiry date, however... isn't it true that as long as the user details are the same, the token generated will also be the same every time? So what's the point of the expiry date, if you are going to end up with the same token anyway?
token 的到期时间存储在 token 正文中(在 exp
键下),因此每当生成具有不同到期时间的新 token 时, token 的值都会发生变化。 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
的 token 过去的值无法正确验证,因此 token 无法使用。
关于node.js - 关注智威汤逊安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40078510/
我是一名优秀的程序员,十分优秀!