Security 使用黑名单缓存使JWT无效安全吗?

Security 使用黑名单缓存使JWT无效安全吗?,security,authentication,web-applications,jwt,jwt-auth,Security,Authentication,Web Applications,Jwt,Jwt Auth,我发现的最常见的示例以及JWT Auth库中的代码都提供了通过黑名单使JWT无效的机制。如果令牌需要失效,它将被添加到黑名单中,黑名单本质上只是一个易受波动影响的缓存 我对我的应用程序的担心是,如果攻击者收到某人的JWT,如果服务器被迫重新启动或任何其他导致缓存被擦除的情况,JWT将不会失效,并且攻击者可以尽可能不使用以前失效的令牌。我目前正在决定实现引用令牌,这样可以手动使JWT无效,但很可能在您意识到并使您的令牌无效时,攻击者已经造成了损害 这是否意味着令牌的生存时间足够短,可以根据可能被清

我发现的最常见的示例以及JWT Auth库中的代码都提供了通过黑名单使JWT无效的机制。如果令牌需要失效,它将被添加到黑名单中,黑名单本质上只是一个易受波动影响的缓存

我对我的应用程序的担心是,如果攻击者收到某人的JWT,如果服务器被迫重新启动或任何其他导致缓存被擦除的情况,JWT将不会失效,并且攻击者可以尽可能不使用以前失效的令牌。我目前正在决定实现引用令牌,这样可以手动使JWT无效,但很可能在您意识到并使您的令牌无效时,攻击者已经造成了损害


这是否意味着令牌的生存时间足够短,可以根据可能被清除/擦除/丢失的缓存使其失效?

这取决于您的威胁分析。你的应用程序是否必须如此安全,以至于你绝对需要能够撤销压缩的JWT代币

还是为了你的代币而活的时间越短越有意义?例如,如果生存时间为一小时,则在您的客户检测到盗窃、联系您的支持部门并让他们撤销代币之前,代币过期的可能性要高得多


如果您仍然觉得需要能够撤销JWT令牌,请使用可以集中撤销的引用令牌。拥有自己的黑名单可能比它的价值更麻烦。如果将缓存保留在内存中,则必须处理崩溃和重新启动。如果您有多台服务器,则需要保持多个缓存同步或使用分布式缓存。

这正是我所想的,我只是需要有人帮助验证我的假设。