API接口设计
一、API接口设计:防参数篡改+防二次请求(防重放)
API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数
为了防止被别有用心之人获取到真实请求参数后再次发起请求获取信息,需要采取很多安全机制
1、防篡改(保证数据的保密性 完整性 可用性)
(1) 采用https请求
(2) 采用约定密钥对参数进行对称加密生成校参签名 signature,保证数据的完整性
2、防重放
(1)生成临时参数 nonce (可以通过时间戳和随机数以及计算机ip,mac等信息生成唯一值) nonce存储在服务端一天防止重复请求,nonce参数作为数字签名的一部分,是无法篡改的
(2)同时生成timestamp 避免nonce在一天之后重放使用,设置请求过期时间 1min
3、token
访问授权 请求header 传入token进行接口访问
总结:
1、请求头中添加token 访问授权
2、 nonce 防重放(网络问题)
3、 timestamp 防重放(防第三方拦截攻击)
4、signature (保证数据的完整性)