【问题标题】:Would it be okay to have JWTs to never expire given some requirements?考虑到某些要求,让 JWT 永不过期可以吗?
【发布时间】:2020-09-26 21:50:08
【问题描述】:

我希望不必实现 redis 或在数据库中存储刷新令牌之类的东西。我想利用 JWT 的“全部功能”(可扩展性、无需存储与会话/令牌、无状态等相关的任何内容)

假设我有一个设置为安全、httpOnly、samesite=lax 的 cookie。 除非用户指定“记住我”选项,否则 cookie 将在用户关闭网站时过期。在这个 cookie 中将存储一个永不过期的 JWT。

当然也会实施一些 CSRF 保护!

这足够安全吗?鉴于上述要求(cookie 要求),攻击者如何从客户端检索 JWT?

如果攻击者完全无法访问 JWT,那么就不需要撤销 JWT 或让它在某个时间过期,对吗?

【问题讨论】:

    标签: node.js express cookies jwt httponly


    【解决方案1】:

    对于“这足够安全吗?”这个问题,只有您可以回答并决定是否要使用此解决方案。

    对于局外人的观点;我认为没有过期的 JWT 集已经不是好的做法,因为这样做有点放弃了一些无休止的访问权限。

    然后你写“攻击者将如何检索......”。这是另一个不安全的假设。 “成功的攻击”通常是指攻击者以您没有预料到的方式做某事。

    总而言之,我想说:你所想的是可能的;但这不是推荐的东西。

    要获得更深入的意见,您可以查看更多文档或咨询专家。首先你可以看看这几个JWT tutorials

    【讨论】:

      【解决方案2】:

      恕我直言,如果您要保护敏感信息,那么在 cookie 中拥有长期有效的身份验证令牌是危险的。用户可能会被利用社交工程欺骗打开开发工具并共享 cookie 内容。安全性很痛苦,但在日志运行中得到了回报。

      【讨论】:

        猜你喜欢
        • 2012-04-27
        • 2021-08-26
        • 2021-09-25
        • 2021-10-03
        • 2013-10-19
        • 2012-11-09
        • 1970-01-01
        • 2011-12-21
        • 2018-04-19
        相关资源
        最近更新 更多