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

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

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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
chiri

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

7年前 评论
leo

所以你需要 https

7年前 评论

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