API接口签名验证

什么是接口签名

接口签名是用于保护开放接口的安全。

​开放性的接口较容易遭受一些安全问题,例如伪装和篡改。例如签名可以更好的防范这些问题。

一般会根据指定的算法和相应的密钥生成相应的签名,这个签名会作为入参通过客户端一起传送给服务端。

服务端再通过算法进行校验,校验通过视为身份正确,正常放行。校验失败则视为身份不正确,不予放行。

签名流程

  1. 分配appkey、appsecret
  2. 生成签名sign

通过请求参数、时间戳、appsecret 生成签名sign

  1. 请求携带签名

公共参数,可放在header中统一携带

参数说明
appkey应用唯一标识,由服务方分配
timestamp时间戳,做过期校验
nonce随机值
sign签名
  1. 服务端校验
  • 首先校验 timestamp 字段,如果在有效时间内比如60s则通过请求,超过则直接拒绝请求;
  • 校验随机值 nonce, 有效期间内随机值一样,则认为为重复请求,直接拒绝;
  • 用同样的规则生成 sign,并与请求携带的 sign 做对比,一致则通过。
三方接口调用设计方案
API接口签名(防重放攻击)

本文链接: https://jianz.xyz/index.php/archives/334/

1 + 8 =
快来做第一个评论的人吧~