app登陆以及与后台通讯安全性

去年下半年进入新的项目团队,涉及到现有项目的升级改造、新功能开发,期间发现不少问题,现整理一下予以记录,希望对大家有所帮助。

原有登录流程为:

app登陆以及与后台通讯安全性_第1张图片

 

存在的问题主要有:

  1. 所有报文http明文传输,包括登录以及敏感信息的发送。
  2. 登录成功后,后续所有接口访问无需任何校验,比如我要进行修改密码直接post请求,不再做校验,http://ip /modifypwd?userid=888&oldpwd=123&newpwd=999&confirmpwd=999,相 当于只要知道报文格式,就可以查询、修改系统内任何用户的任何的信息。
  3. 报文为json格式,但无统一规范。
  4. 所有协议无文档,无说明。

改造流程主要为:

  1. 全站所有请求修改https协议,基于SSL安全传输,首先保证传输安全。
  2. 在用户登录时,返回唯一token值,以后所有访问请求,需要校验此值,若不匹配拒绝后续请求。已全站https 所以无需再进行url签名或者对称加密等方式。
  3. 统一报文规范,分为报文头、报文体,通过报文头确定请求是否成功,成功后再进行后续解析。
  4. 所有协议规范文档,采用的方式为 每个协议编写单独的html页面,所有的协议说明、接口调试通过页面进行,一方面解决了文档问题,另一方面方便了开发人员调试。

当然还有很多其他解决方案,比如:

  • 由于https相比http效率稍慢,很多朋友会在登录以及敏感信息采用https,其他采用http  url 签名方式、对称加密方式等,从现在的硬件发展来看,个人感觉效率已不是制约因素,更推荐全站https。

本文首发于个人博客:https://www.jiucool.org/app-security/

你可能感兴趣的:(APP相关)