比如做接口时,网站A调用网站B的接口,如何保证A与B之前传递的数据是安全的,发送的请求是有效的,防止恶意请求。
B网站中开放一个接口,用来执行A发送过来的请求,比较常用的安全验证:
1、A中和B中同时存放一个通信密钥,两边存放的密钥是一致的。
2、定义签名规则。
例如
A请求B的链接是:http://www.b.com/doAtm.do,需要传递的参数是name='张三',sex='1',age='18',no='001'。
定义通信密钥:mac_id='123qwe456asd';通信密钥内容只要两边一直即可。
定义签名规则:String data= String.format("%s|%s|%s",no,name,sex,mac_id);//签名规则可自己定义
data= MD5(data);
用md5加密,然后向b发送请求http://www.b.com/doAtm.do?sign=data&name='张三'&sex='1'&age='18'&no='001'&mac_id='123qwe456asd';
b收到请求后根据传递过来的参数生成签名,两边签名规则需要一致,然后与参数中sign进行比较,如果一致则请求是有效的,否则请求无效。