• 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中,每次请求都进行相应的校验,就可以用解决了!

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

  • 相关阅读:
    HDU 4031 Attack(离线+线段树)(The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest)
    BZOJ 1010 玩具装箱toy(四边形不等式优化DP)(HNOI 2008)
    分布式事务二阶提交DTS系统
    flume原理及代码实现
    Liferay JSP Tag Libraries介绍
    如何用maven tycho构建自己的Eclipse RCP应用
    如何合并两个git commit
    推荐一个好用的git图形化工具
    git gc干了啥
    如何把VS Code的Language Server Protocol整合到Eclipse中来
  • 原文地址:https://www.cnblogs.com/faming/p/4717965.html
Copyright © 2020-2023  润新知