接口对接安全性方案
文章目录
接口对接安全性方案
鉴权(authentication)是指验证用户是否拥有访问系统的权利。
-
建立访问IP白名单 可以在nginx上配置只允许某些固定IP可以访问 或者 在阿里云的服务器上直接配置IP白名单
-
请求header带token令牌方式,授权调用API
-
采用签名方式
签名是算法约定一个盐,通过这个算法把原文和盐加在一起,然后提取他们的摘要作为签名,一般是不可逆的过程。别人得到签名和盐是没用的,因为无法解密。通过签名认证的方式是,两者都通过一样的算法和约定好的盐,提取出摘要,然后比对这两个摘要是否一致来完成验证。
a + yan -> 摘要算法 -> b
a + yan -> 摘要算法 -> b
如果 b==b, 则(基本上)可以认为 a=a, 完成验证。
-
敏感数据或参数采用密钥进行加密和解密
-
API数据合法性校验
-
时间戳超时机制、过载保护机制,防止重复调用和攻击
接口具体加密方式
- 接口参数加密 可以采用AES对称加密,对接双方约定好秘钥进行对接
- 接口参数加密+时间戳 在参数加密时加上时间戳参数,这样根据时间戳跑判断接口的失效时间
- 接口参数加密+时间戳+不同来源的密钥 多个项目同时对接某个项目时,我们可以根据不同的项目设置不同的密钥,如果其中一个对接项目出现密钥泄露的情况,不会影响其他项目的调用
系统级别的安全性方案
-
在业务场景情况下,业务侧的风险威胁主要分两种:黑客攻击和业务人员自身的访问。
- 面对黑客攻击,web应用防火墙(WAF)可实现90%拦截,剩下的SQL注入就需要数据库防火墙进行拦截。
- 面对业务人员的防控,因为业务人员往往是合法身份、合法行为,这个时候需要通过数据访问行为建模发现意图的特征。还有一种是针对数据下载数量进行策略设置,防止批量下载。
- Web应用防火墙(Web Application Firewall,简称 WAF)基于云安全大数据能力,用于防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。
- 云数据库防火墙(简称DBFirewall-Encloud)能够实时监控云上的数据库活动,使用全面的访问控制,防止来自内部和外部对数据的攻击,是保护数据库安全的最后一道防线。
-
永远不要相信用户的输入数据,一定要对表单数据进行过滤处理。
-
使用阿里云的 DDOoS 高防,预防接口攻击
阿里云DDoS防护服务是以阿里云覆盖全球的DDoS防护网络为基础,结合阿里巴巴自研的DDoS攻击检测和智能防护体系,向您提供可管理的DDoS防护服务,自动快速的缓解网络攻击对业务造成的延迟增加,访问受限,业务中断等影响,从而减少业务损失,降低潜在DDoS攻击风险。
接口通讯规范示例
-
签名规则:
1 2 3 4 5 6 7
// 签名有效期暂定为 600 秒 var platform = "xxxx" // 平台,正式测试环境保持一致 var secret = "test_123456" // 测试环境密钥 var requestTime = 1640163102 // 秒级时间戳 // 生成签名 sign := Md5(fmt.Sprintf("%d-%s-%s", requestTime, platform, secret))
-
数据规范
-
数据类型规范
- 字段约定返回 int 型,则不能返回 string 等其他类型,其他类型同理
- 字段约定返回 array ,如果为空则需返回[]
- 字段约定返回 object,如果为空则需返回null
-
接口请求规范:
- header头必带参数
- 请求参数传递使用 json body 的方式
header参数 数据类型 参数说明 补充说明 api-sign string 签名串 api-time int 秒级时间戳 -
数据响应规范
响应参数 数据类型 参数说明 补充说明 code int 响应状态码:0-接口响应成功,1-接口请求失败直接报错,2-签名无效 http状态码:0-返回200,1-返回400,500 等,2-返回401 message string 结果提示信息 data object array 响应内容
-