🔐 接口签名(防篡改)
支持 HTTP 接口签名特性,提高安全性。
项目给第三方提供 HTTP 接口时,为了提高对接中数据传输的安全性,主要是防止请求参数被劫持并篡改,同时校验调用方的有效性与时效性,通常都需要增加签名 sign 机制。
API签名校验机制是一个用于保护API接口安全性的框架,通过验证请求的完整性和时效性,防止请求被篡改和重放攻击。该机制基于Spring AOP实现,使用注解方式配置,支持自动配置。
支持以下方式进行签名配置
- 配置文件;
- Controller 注解;
- 数据库配置。
签名内容
将请求头、请求体、请求参数,按照一定顺序排列,然后添加密钥,获得需要进行签名的字符串。
通过 SHA256 进行加密,得到签名 sign。
注意:第三方调用时,每次请求 Header 需要带上 appId、timestamp、nonce、sign 四个参数:
appId:调用方的唯一标识。
timestamp:请求时的时间戳。
nonce:用于请求的防重放攻击,每次请求唯一,例如说 UUID。
sign:HTTP 签名。