去年下半年进入新的项目团队,涉及到现有项目的升级改造、新功能开发,期间发现不少问题,现整理一下予以记录,希望对大家有所帮助。
原有登录流程为:
存在的问题主要有:
- 所有报文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。
版权声明:除特殊说明,文章均为博主 久酷 原创文章,转载请注明来源
现在做 WordPress 网站,有些客户需要 SSL 的都全站 HTTPS 了