如果你的jwt过期时间定义的如果足够短,就可以让前端直接剔除,业务安全性肯定没有拉入黑名单的安全性强, 当然如果你的业务需要达到很高的安全等级了, 你只是在
jwt 下功夫是不行的, 你将 jwt 拉入黑名单其实并不能防止 jwt 被盗用的问题, 理论上 现在主要应用 无论是 移动端 或者 pc端,
很少有会有用户主动会去 进行退出账户的操作, 导致业务实际其实都是 jwt 自然过期失效。其实这块代码也没提升安全性。
不过你想提高接口的安全性,可以从接口签名的方向去做。接口签名一般会把 时间戳,请求参数,流水号 这三个数据进行加密来实现接口的安全性
首先接口签名有以下好处
* 数据防篡改: 接口签名算法可以把接口的参数也纳入加密中,一般会通过摘要算法把请求参数进行处理, 当服务端收到消息可以把请求数据通过同样的算法计算后, 然后进行对比,如果服务端算出的值与客户端传的值是不同的,证明数据进行过篡改
* 有效期校验: 签名里包含的时间戳,可以应对重放攻击, 当攻击者通过某种手段获取到接口请求, 直接啥都不改, 重复请求已获取返回的话, 如果你的允许相差5s的话, 那这个接口的有效期只有 5s ,攻击者只能在5s内获取你的接口信息,并在5s内进行使用,
* 防止接口重复调用: 签名里的流水号,可以用于接口的唯一性确认, 你可以当接口请求后,放入redis 的黑名单里, 当又出现这个流水号时,你就可以判定有人重复使用这个请求,属于非法请求
具体你可以看看这篇文章
"https://www.cnblogs.com/hjzgg/p/11062043.html" (https://link.segmentfault.com/?enc=MCI2z23EK7VCvOpl3eJXfg%3D%3D.04aVDs%2FCNb13liudLb2tWMYFH2bm0TLDbNb3s2QrIoL2S2hQVbm4GvvIH5fQtdJo)