我也一直在研究这个问题,尽管以下所有想法都不是完整的解决方案,但它们可能会帮助其他人排除想法或提供其他想法。
1)只需从客户端删除令牌
显然,这对服务器端安全没有任何帮助,但是通过删除令牌的存在确实阻止了攻击者(即,他们必须在注销之前窃取令牌)。
2)创建一个令牌黑名单
您可以存储无效令牌,直到它们的初始到期日期,然后将它们与传入请求进行比较。不过,这似乎可以消除完全基于令牌的原因,因为您需要为每个请求触摸数据库。不过,存储空间可能会更小,因为您只需要存储注销和到期时间之间的令牌(这是一种直觉,并且绝对取决于上下文)。
3)保持令牌到期时间短并经常轮换
如果您将令牌的到期时间保持在足够短的时间间隔内,并且让运行中的客户端在必要时跟踪并请求更新,则数字1将有效地用作完整的注销系统。这种方法的问题在于,它使得无法在关闭客户端代码之间保持用户登录状态(取决于您设置到期间隔的时间)。
临时计划
如果发生紧急情况或用户令牌遭到破坏,您可以做的一件事是允许用户使用其登录凭据更改基础用户查找ID。这将使所有关联的令牌无效,因为将不再能够找到关联的用户。
我还想指出,在令牌中包含上次登录日期是个好主意,这样您就可以在很长一段时间后强制重新登录。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)