app的后台接口通讯方案

本文是参考网上资料,和结合自身的一些开发经验所写,不喜勿喷!

在app的后台设计中,一个很重要的因素是考虑通讯的安全性。

因此,我们需要考虑的要点有:
1. 在app和后台,都不能保存任何用户密码的明文
2. 在app和后台通讯的过程中,怎么保证用户信息的安全性

3,app的反编译处理


 在app中,根据安全考虑,用户的操作分为两类:

1. 用户登录注册操作

2. 用户的其他操作
   在第一点,用户登录注册操作中,是会出现用户密码,所以在这个过程中,必须要使用https通讯,保证通讯的安全。
    在第二点,用户的其他操作,怎么保证这部分通讯的安全呢?

    在我的设计中,是采用了公钥加私钥保证安全。用户的id是公钥,通过一定的算法对用户的id进行加密得到一个加密字符串是私钥。当用户登录或注册后,通过https把公钥加私钥返回给app客户端。

但这个方法有个缺点,当别人截获了这个url时可以重复使用,所以有个改进方法是在传递的参数中增加时间戳,当发现这个时间戳离现在的时间已经很久了,就判断这个url已经失效了。但用时间戳怎么保证app的时间和服务器的时间同步?可以在app每次启动和注册登录时和服务器同步时间,然后在app内建一个时钟,时间戳在这个app的内部时钟获取,防止用户修改了手机的时间。

后台由于项目新的需求开发微信端,走的也是这个接口,如果想用上面的方案可就走不通了,因为微信端相当于一个pc端,如果走同一个接口,无疑就把所有的安全性问题暴露了,熟悉点前端的都知道,很多前端js脚本完全暴露给别人了,尤其是私钥的处理,尤为复杂!ios,android可以把秘钥存储在本机文本或数据库中,但是网页不行!但是网页上的可以存在私钥session中,每次请求都进行相应的校验,就可以用解决了!

最后,希望能帮助到大家,谢谢!

原文地址:https://www.cnblogs.com/faming/p/4717965.html