文章目录
- 引言
- I 签名安全规范
-
- 1.1 签名生成的通用步骤
- 1.2 签名运算(加密规则)
- 1.3 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
- 1.4 允许的请求头字段
- 1.5 签名校验工具
- II 注解校验签名
-
- 2.1 获取请求数据,并校验签名数据
- 2.2 解决时间格式被强制转换成时间戳的问题
- 2.3 用法
- III 其他注意事项
-
- 3.1 检验随机数字段不能为空
- 3.2 swagger 新增请求头字段
引言
背景: 等级保护应用安全验证测试发现重要数据传输过程中存在被篡改风险
风险分析: 不同业务场景可能造成不同危害,如可能导致短信轰炸、无限刷评论、无限制点赞、无限制积分、无限制投票、无限制文件上传等业务逻辑问题。
解决方案:
- 接口报文签名,防止被篡改。
尤其是涉及敏感词操作的接口:支付、密码、登陆、验证码等接口。
- 在每个数据请求中加入生成随机数算法(时间戳/token),在服务端进行验证,主要保证签名不可预测。
API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。
I 签名安全规范
接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。