基于timestamp+nonce的会话重放解决方案

基于timestamp+nonce的会话解决方案
timestamp解决黑客抓包重放请求超过60s的情况,超过60s的请求为非法请求。
nonce(Number used once)仅一次有效的随机字符串,要求每次请求时,该参数要保证不同,所以该参数与时间戳有关。我们把每次请求的nonce参数保存在一个集合中,可以json格式存储在数据库中或缓存中,我们每次处理http请求时,首先判断该请求的nonce参数是否在该集合中,如果存在则认为是非法请求。nonce可以是时间戳的16进制,也可以是客户端的ip地址,mac地址等信息hash之后的参数。
1、客户端首先向服务器发送gettime请求,从服务器获取timestamp参数。
2、客户端生成的sign值(timestamp+token+nonce)与客户端生成的sign值(timestamp+token+nonce)比较,如果不相等说明数据被篡改。token通过uid从数据库中获取
3、相等继续判断时间误差是否在60s内,如果超过60s说明非法请求。
4、若时间误差<60s判断nonce是否在集合内,若在集合内说明非法请求。
5、若不在集合内写入集合内。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值