Android接口怎么保证安全性?怎么保证接口不被抓包工具抓取?
接口inteface的作用:
- 解决了多重继承问题
java不支持多继承(一类多超),但一个类可实现多个接口,将抽象方法定义在接口当中,间接达到多重继承的目的。(弥补了java单继承的缺点)。 - 用于回调
主线程不支持耗时操作(网络请求,数据库读写,文件读取),将其放置子线程当中,执行完将结果发给主线程,这个过程,就是回调。
一.怎么保证接口的安全性?(5种方式)
①Token机制
用户登录成功时,服务器返回一个Token值(客户端与服务端的认证机制)给客户端,后续客户端调用服务端的接口,都需要携带这个Token值
服务器接收后校验Token合法性,Token不一致,服务器拦截该请求。
②使用Https
Https具有SSL保密协议,能有效的防止中间人的攻击,保证接口的安全性,确保数据不被篡改。
③对数据进行校验
(服务器收到数据后,需要验证是否与客户端发送的一致,确保传输过程
中不被修改,这就需要服务端与客户端做签名与验签的准备)
客户端对所有请求服务端接口的参数,加密生成签名,将签名作为请求参数发送给服务器。
服务端接受请求同时做验签的操作,使用对称加密方法对请求参数生成签名,与客户端发送的签名做对比,不一致,服务器进行拦截。
④过载保护
对访问接口设置最高访问次数,对于超过次数的请求进行屏蔽以及预警。
⑤采用异常封装
服务器需要构建异常统一处理架构,将所有可能发生的异常封装在一起,返回固定的code与msg,防止程序堆栈信息的泄露。
二.怎么保证接口不被抓包工具抓取?
①接口验证
在每一个接口添加一个code用于接口验证,验证通过才能请求到数据。
②添加密钥
每个app都有一个密钥secreKey,密钥随参数一同加密,保证接口安全。
③采用多种加密方式
应用多种加密方式,这样用户也只能抓到链接,也抓不到数据,也能防止获取加密的secreKey。
④Https
之间使用https,可避免抓包。
⑤设置不代理
Fidder和Charles抓包工具,本质上,是利用中间人的方式,获取用户信息。
抓包工具前提是设备上的代理模式,通常我们是在wifi连接页面设置代理,
对于常用网络库,是提供了代理接口,我们只需设置为无代理模式,对app本身无影响。