app登陆以及与后台通讯安全性
2016-02-28 19:51
417 查看
去年下半年进入新的项目团队,涉及到现有项目的升级改造、新功能开发,期间发现不少问题,现整理一下予以记录,希望对大家有所帮助。
原有登录流程为:
登录成功后,后续所有接口访问无需任何校验,比如我要进行修改密码直接post请求,不再做校验,http://ip /modifypwd?userid=888&oldpwd=123&newpwd=999&confirmpwd=999,相 当于只要知道报文格式,就可以查询、修改系统内任何用户的任何的信息。
报文为json格式,但无统一规范。
所有协议无文档,无说明。
在用户登录时,返回唯一token值,以后所有访问请求,需要校验此值,若不匹配拒绝后续请求。已全站https 所以无需再进行url签名或者对称加密等方式。
统一报文规范,分为报文头、报文体,通过报文头确定请求是否成功,成功后再进行后续解析。
所有协议规范文档,采用的方式为 每个协议编写单独的html页面,所有的协议说明、接口调试通过页面进行,一方面解决了文档问题,另一方面方便了开发人员调试。
当然还有很多其他解决方案,比如:
由于https相比http效率稍慢,很多朋友会在登录以及敏感信息采用https,其他采用http url 签名方式、对称加密方式等,从现在的硬件发展来看,个人感觉效率已不是制约因素,更推荐全站https。
本文首发于个人博客:https://www.jiucool.org/app-security/
原有登录流程为:
存在的问题主要有:
所有报文http明文传输,包括登录以及敏感信息的发送。登录成功后,后续所有接口访问无需任何校验,比如我要进行修改密码直接post请求,不再做校验,http://ip /modifypwd?userid=888&oldpwd=123&newpwd=999&confirmpwd=999,相 当于只要知道报文格式,就可以查询、修改系统内任何用户的任何的信息。
报文为json格式,但无统一规范。
所有协议无文档,无说明。
改造流程主要为:
全站所有请求修改https协议,基于SSL安全传输,首先保证传输安全。在用户登录时,返回唯一token值,以后所有访问请求,需要校验此值,若不匹配拒绝后续请求。已全站https 所以无需再进行url签名或者对称加密等方式。
统一报文规范,分为报文头、报文体,通过报文头确定请求是否成功,成功后再进行后续解析。
所有协议规范文档,采用的方式为 每个协议编写单独的html页面,所有的协议说明、接口调试通过页面进行,一方面解决了文档问题,另一方面方便了开发人员调试。
当然还有很多其他解决方案,比如:
由于https相比http效率稍慢,很多朋友会在登录以及敏感信息采用https,其他采用http url 签名方式、对称加密方式等,从现在的硬件发展来看,个人感觉效率已不是制约因素,更推荐全站https。
本文首发于个人博客:https://www.jiucool.org/app-security/
相关文章推荐
- android设置组件透明效果
- android学习之实现动态自动匹配输入
- [iOS]防止数组越界及添加空值的crash的扩展
- Windows环境下Android Studio v1.0安装教程
- 极客学院-通过"Android学习之Launcher源码学习"看UML序列图
- Android Studio 安装过程
- 【android笔记】之 android studio 快捷键 (二)
- Java&Android编码规范
- Android View上绘制图形和图片的总结
- Unity3D 5 官方教程:地形设置
- Appium在Mac上的环境检查以及iOS模拟器初级录制
- 把一年前的java小程序开始上传,形成知识体系
- (android高仿系列)今日头条 --新闻阅读器 (三) 完结 、总结 篇
- android中基本文件输入输出流的使用(代码)
- (android高仿系列)今日头条 --新闻阅读器 (二)
- (android高仿系列)今日头条 --新闻阅读器 (一)
- android 布局 ListView中的列表 RelativeLayout
- android异步任务简介
- Data Binding 打造RecyclerView 万能适配器
- android线程和进程关系