文章目录
  1. 1. 为什么需要验证
  2. 2. 如何避免
  3. 3. 实现的流程是

为什么需要验证

常规的网络请求多数App都会使用第三方网络请求,在多数情况下,我们只需要熟悉每个第三方提供API接口就足够支持大部分业务,往往会忽略一些安全问题。

如果说我们的app请求被抓包,所有的接口信息被截获,这样任何一个开发人员掌握了我们的业务接口以及业务字段,就可以伪造发起一个假请求来攻击服务器,导致服务器瘫痪,数据错乱等严重性问题。

如何避免

我们可以利用每个接口传递的业务参数,设想一下,如果攻击者知道了我们的业务key以及接口的地址,那他就可以把想要修改的值伪造出来进行请求。
最有效的方式是我们只要对每个request做验证签名的动作就在请求的时候做防护。
为了防止恶意伪造的请求,app和服务器这边协商统一唯一的Key作为验证签名的钥匙。

实现的流程是

  • 首先约定一个app和服务器的key
  • 将业务参数和key转换成一个MD532位编码
  • 将编码存放在请求头中传入服务器
  • 服务器将业务参数和key进行编码与请求头中的编码进行验证,如果是则代表是一个有效的请求。