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

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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
chiri

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

7年前 评论
leo

所以你需要 https

7年前 评论

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