一、基于工夫戳解决方案
1、一次失常的http申请, 响应工夫般在5s内实现, 基本上不会超过60s, App依据本人接口的响应工夫设置阀值
2、客户端每次发动清求,携带以后工夫载
3、服务器接管申请后,校验客户端工夫戳与服务端工夫戳的差值,超过了60s既认为是重放攻打
优缺点: 实现简略无效,但在60s内,黑客仍可实现重放攻打,工夫戮最好再加盐解决。
二、基于随机数解决方案
1、客户端每次发动申请,都须要携带随机数id (要求惟一即可)
2、服务端接管到申请后,先校验用户携带的随机数id是否存在,不存在,将随机数id存储到数据库或缓存服务器中,存在:既认为是重放攻打
优缺点:实现简略无效,但随着申请量越多,存储的数据会越来越大。
三、基于流水号解决方案
1、客户端、服务端在报文中增加一个逐渐递增的整数,只有接管到一个不间断的流水号报文,即认定有重放威逼。
优缺点:长处是不须要工夫同步,保留的信息量比随机数形式小;毛病是一旦攻击者对报文解密胜利,就能够取得流水号,从而每次将流水号递增坑骗认证端。
四、基于工夫戳和随机数的解决方案
1、一次失常的http申请,响应工夫个别在5s内实现,基本上不会超过60s, App依据本人接口的响应工夫设置阀值
2、客户首每次发动申请,携带以后工夫戳和随机数id
3、服务端接管申请后,先校验客户端工夫戳与服务端工夫戳的差值,超过了60s既认为是重放攻打,若未超过60秒,则校验用户携带的随机数id是否存在,不存在,将随机数id存储到数据库或缓存服务器中,存在认为是重放攻打。
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g