前后端分离的项目, API 接口如何防止重放攻击

当前的项目是前后端分离的,用了 laravel 的 jwt 做 token 验证。
看过很多文档都说用时间戳 timestamp 和 nonstr 来做。
但是web前端的时间戳没办法保证和服务器的一致。
每个用户的可能时区都不一样。没办法通过传递时间戳参数来验证是否过期。
如果只用 nonstr,如果设置 1 天清除一次。那么一天后重放也是可以的。
所以想请教下怎么来处理这个问题呢?

想到一个方法,但是觉得不是太好。所以继续请教下。
因为当前用的是 jwt 的 token。那么我可以让前端,每 30 分钟就去重新刷新获取新的 token。然后配置每次请求用 nonstr 来防止重发。记录 30 分钟内的 nonstr 集合。不在这个集合里面就是正常请求。这样即使过了 30 分钟,发起重放。实际上我的 token 已经变了。就没这个问题了。也不会有时间戳一致的问题了。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
chiri

时间戳跟时区是没有关系的吧

7年前 评论
leo

所以你需要 https

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!