如何保护你的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更安全,需要将加密算法设计更加复杂一些。
* 密钥设计的复杂一些;
* 使用多次字符串加密;
* 截取加密后字符串的某几位;

你可能感兴趣的:(技术)