【分享】对外API接口安全设计

前言

最近公司业务需要对外提供接口,之前没有什么对外接口开发经验所以最近找了很多文章,恶补了一下对外接口开发知识,这篇算是自己开发接口的一个总结吧。下图我设计接口的大体流程

对外接口的安全问题

1.传输过程的安全 请求报文在网络传输过程中可能会被劫持篡改请求参数信息,导致服务端接收错误的参数。所以我们引入签名机制,就好比一个指纹锁,我需要一个正确的指纹才能打开锁,这里的指纹就是签名。接口请求方根据接口双方约定的签名规则对参数进行签名,即使请求参数被篡改,我们通过双方生成的签名进行验签来拒绝这次请求。生成签名的算法可以使用摘要算法最常用的SHA256。     以上所述我们可以保证请求数据由接口请求方到服务器端的数据不会被篡改,那么服务端返回到接口请求方的数据怎么能保证这个数据是由服务端返回的未被篡改过的数据。这里我的做法通过RSA算法生成公私钥,服务器端保存私钥,线下提供公钥给接口请求方,由接口请求方生成一个自己的密钥secretKey,通过RSA算法用公钥对secretKey进行加密,将加密后的字段通过请求头的方式传给服务端,服务端用私钥解密得到secretKey,在服务端返回数据的时候用AES算法进行加密,接口请求方用自己secretKey进行解密来保证返回数据的安全性。

2.到达服务端的安全 请求到达服务端需要判断这个请求方的身份是否合法。以及是否被DoS攻击。判断身份是否合法我们可以利用token的方式,通过下线分配给接口请求方一个id和密码类似于用户登录的用户名和密码来获取token(token可以是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值