APP开发实战9-API接口安全方案
2016-05-11 22:06
309 查看
3.2安全方案
3.2.1 数据加密
最简单的是使用HTTPS对APP和服务器的交互数据加密。使用HTTP协议,但自己设计加密方案,加密方式有对称加密和非对称加密:
对称(AES和DES)
非对称(RSA和ECC)
对称加密是加密解密用同样的“钥匙”,非对称加密加密解密用不同的“钥匙”,建议采用更安全的非对称加密方式。
3.2.2 APP访问鉴权
可以设计一个初始化请求命令,发送这个请求的时候,可以把APPCode或APPKey和发送请求的时间戳发送给服务器。在每次启动APP连接服务器的时候,首先向服务器发送这个请求,服务器根据其中的APPCode或APPKey鉴权是否是合法的APP请求,只有鉴权通过了,服务器在接受APP后续发送的请求,且可以把服务器端的配置参数返回给APP。
APPCode和APPKey也可以用做判断是iOS APP或Android APP向服务器发送请求。
3.2.3 HTTP命令的使用
APP和服务器交互通常是使用HTTP协议,常用的命令是GET和POST:GET命令的参数暴露在发送给服务器的URL里,且参数长度有限制。
POST命令的参数在HTTP请求的BODY体里,安全且长度没有限制。
从安全角度考虑,只要是带参数的请求,都应该使用POST命令。
APP向服务器发送的URL请求通常是如下格式:
http://+域名+/+其它+/+方法名
有比较极端的方法是把方法名也作为参数,加到BODY体里。
3.2.4 密码的处理
APP向服务器发送密码的时候,应先对密码进行加密,然后再发送,之前已经提过需要对传输过程加密,这样相当于对密码进行了两次加密。存储在本地或服务器端的密码也都是要加密后再存储。
3.2.5 数据的存储
一些比较重要的数据,如支付宝和微信支付都会用到密钥文件,这类文件最好存储在服务器端,不要存储在APP端。相关文章推荐
- Android开发中R文件丢失
- RxAndroid 常见用法
- MVP模式在Android项目中的使用
- Android带多选功能的PhotoPicker
- Hibernate中的级联策略和object references an unsaved transient instance - save the transient instance before
- android5.x以上 状态栏透明的问题
- Android一步一步实现一款实用的Android广告栏
- How to build j2ee application on OpenShift (2)
- Android之系统Action大全
- Android版本号对应关系
- Android调用系统相机照片和裁剪
- Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
- 安卓listview实现购物车
- UVA 10652 Board Wrapping 凸包
- Android内存泄漏
- Android性能优化之Java代码优化
- Android获取图片资源的4种方式
- Android Studio 设置主题及字体
- 老罗的Android系统分析(三横三纵)
- AndroidStudio 快速集成fastjson和注解