如何保护你的API

最基本的安全验证

REST API架构越来越多的被使用。

当你设计了一个POST方法的API时,该API暴露出来后可能被人找到,并进行恶意数据的提交。

怎么解决这个被恶意提交的问题呢?首先想到的是可以要求客户在提交参数时,将验证信息加上如:用户名、密码。就像下面的数据结构一样用户每次提交数据都加上KID(相当于用户名)和Passwd:

{"data":"123", "kid":"12222", "passwd":"asdfasde2211"}

被抓包怎么办?

按照上面的方法数据如果被抓包后,所data的数据进行修改后再提交,这样服务器端根据不本知道数据被修改了。如果你设计的是一套金融系统,这个data可能是RMB….

加入签名

解决数据被修改的方法,就是将参数dataKIDpasswd以及一个密钥计算其MD5值,将计算出的MD5值也加到参数中,这样上述的参数结构会变成
{"data":"123", "kid":"12222", "passwd":"asdfasde2211","sign":"2adw34w21ds88fjeesd"}

服务器端在接收请求后,将datakidpasswd与客户端做同样的加密算法,并将结果与sing进行对比。

有签名后API的风险

加签名的风险如下:
* 加密码算法及密钥同时被破解;

如何使用API更安全

想让API更安全,需要将加密算法设计更加复杂一些。
* 密钥设计的复杂一些;
* 使用多次字符串加密;
* 截取加密后字符串的某几位;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值