考虑到某些要求,让 JWT 永不过期是否可以?
Would it be okay to have JWTs to never expire given some requirements?
我不想实现诸如 redis 或在数据库中存储刷新令牌之类的东西。我想利用 JWT 的 "full power"(可扩展性,无需存储与 sessions/tokens、无状态等相关的任何内容)
假设我有一个设置为安全的 cookie,httpOnly,samesite=lax。
当用户关闭网站时,cookie 将过期,除非用户指定了 "remember me" 选项。在这个 cookie 中,将存储一个永不过期的 JWT。
当然也会实现一些CSRF保护!
这足够安全吗?鉴于上述要求(cookie 要求),攻击者如何从客户端检索 JWT?
如果攻击者完全无法访问 JWT,那么就没有必要撤销 JWT 或让它在某个时候过期,对吗?
恕我直言,如果您要保护敏感信息,在 cookie 中使用长期有效的身份验证令牌是危险的。用户可能会被社会工程学欺骗以打开开发工具并共享 cookie 内容。安全是痛苦的,但在日志中得到回报 运行。
对于“这足够安全吗?”这个问题,只有您可以回答并决定是否要采用此解决方案。
对于局外人的观点;我认为没有过期的 JWT 集已经不是好的做法,因为这样做你有点放弃了一些无限的访问权限。
然后你写“攻击者将如何检索....”。这是另一个不安全的假设。 "successful attack" 的正确含义通常是攻击者以您没有预料到的方式做某事。
总结一下:你想的是可能的;但不推荐。
要获得更深入的意见,您可以查看更多文档或咨询专家。首先你可以看看这几个 JWT tutorials.
我不想实现诸如 redis 或在数据库中存储刷新令牌之类的东西。我想利用 JWT 的 "full power"(可扩展性,无需存储与 sessions/tokens、无状态等相关的任何内容)
假设我有一个设置为安全的 cookie,httpOnly,samesite=lax。 当用户关闭网站时,cookie 将过期,除非用户指定了 "remember me" 选项。在这个 cookie 中,将存储一个永不过期的 JWT。
当然也会实现一些CSRF保护!
这足够安全吗?鉴于上述要求(cookie 要求),攻击者如何从客户端检索 JWT?
如果攻击者完全无法访问 JWT,那么就没有必要撤销 JWT 或让它在某个时候过期,对吗?
恕我直言,如果您要保护敏感信息,在 cookie 中使用长期有效的身份验证令牌是危险的。用户可能会被社会工程学欺骗以打开开发工具并共享 cookie 内容。安全是痛苦的,但在日志中得到回报 运行。
对于“这足够安全吗?”这个问题,只有您可以回答并决定是否要采用此解决方案。
对于局外人的观点;我认为没有过期的 JWT 集已经不是好的做法,因为这样做你有点放弃了一些无限的访问权限。
然后你写“攻击者将如何检索....”。这是另一个不安全的假设。 "successful attack" 的正确含义通常是攻击者以您没有预料到的方式做某事。
总结一下:你想的是可能的;但不推荐。
要获得更深入的意见,您可以查看更多文档或咨询专家。首先你可以看看这几个 JWT tutorials.