目录
前言
在新一轮需求中,我方系统需要与某一系统进行数据传输,由于这些数据需要保证安全不外泄,并在后期交付时要做等保检测,因此在设计接口实现时,需要保证数据传输的安全性。
一般来说,API接口的安全性能一般要考虑以下几点:
1. 接口请求来源合法。
2. 数据传输途中不能被篡改。
A. 请求参数不能被篡改。
B. 返回结果不能被篡改。
3. 数据加密返回,保证数据安全。
4. 防重放攻击。即将拦截请求的参数,重新用于接口调用。
5. 防伪装攻击。这种情况一般是token被劫持时,攻击者伪装请求。
一. 传输加密思路
下文中,客户端皆指接口请求方,服务端皆指提供API的接口提供方。
本次接口开发中的大体思路如下:
1. 客户端生成sign签名,调用服务端接口。
2. 服务端对sign签名进行验证。
3. 服务端对验证成功的请求,返回加密数据。
4. 客户端接收加密数据,解密并使用。
二. 加密操作的具体实现过程
服务端API接口详情:
URL:IP:PORT/api/getSecretData
请求方式:POST
请求头:Content-type:application/json
这里省略了其他业务参数,示例参数如下:
timestamp |
nonce |
sign |
1. 客户端sign签名的生成规则
以上参数中