• 关于APP与服务端通信数据安全的保障措施


    对于前端app在与后台服务端交互过程中,如果不加相应措施,将很容易导致系统安全,稳定性方面的问题。如通信数据被抓包导致非法获取后端的数据,恶意攻击后端发出大量的无效请求导致后端服务瘫痪等。

    对此,我们将针对不同的问题提出对应的解决方案。

    1. 防非法调用——身份认证
    2. 防抓包——数据加密
    3. 防重放攻击——时间戳+随机字符串
    4. 防篡改——签名机制

    防非法调用——身份认证

    身份认证是指只有经过合法授权的用户才能调用我们的接口,这里我们采用Token验证机制。

    APP与服务端的整个通信过程如下:

     详细流程如下:

    1. 用户首先需要输入账号密码进行登录;
    2. APP带上用户输入的账号密码请求服务端登录接口;
    3. 服务端校验账号密码,校验成功返回一个唯一Token作为用户身份凭证;
    4. APP将Token缓存,同时登录成功;
    5. 用户使用APP浏览数据,APP每次向服务端请求数据时须同时带上缓存的Token;
    6. 服务端收到请求,首先会校验Token的合法性,校验成功正常返回数据,校验失败直接返回错误;

    Token验证机制解决了什么问题?

    设想一个场景,我们检测到API接口正在被恶意调用,因为所有的接口都必须带Token才能调用,根据Token我们就能快速反查到对应的用户,所以Token验证机制可以帮助我们快速确定调用者的身份。

    发现恶意调用,我们通过Token确定调用者的身份后可以采取Token失效、封禁帐号等措施来阻止恶意调用继续。

    Token验证机制能防止抓包吗?

    Token验证机制并不能防止APP被抓包,因为Token同样存在泄露的风险,恶意调用者只需要带上Token再请求我们的API接口同样还是能获取到数据。

    因为APP与服务端都是明文通信,一抓包就能看到请求参数以及返回数据,所以为了防止被抓包我们必须要对数据进行加密处理。

    防抓包——数据加密

    数据加密的过程,就是对原来明文传输的数据按某种加密算法进行加密处理,使其成为不可读无意义的密文。

    加密算法大体上可分为对称加密、非对称加密和散列算法等几种方式,后面我们的方案都会涉及到。

    对称加密

    对称加密是一种可逆的加密算法,其中“对称”的意思是加密过程和解密过程使用的是同一个密钥。

  • 相关阅读:
    Spring Cloud Stream
    解决eclipse中git插件中的cannot open git-upload-pack问题
    Unsupported major.minor version 51.0解决办法
    git将本地仓库上传到远程仓库
    Ubuntu下如何安装与运行Redis
    git中进入带有空格的目录下的解决办法
    http://www.111cn.net/jsp/Jsp-Servlet/45158.htm
    MySQL 5.6 for Windows 解压缩版配置安装
    http://blog.csdn.net/congcong68/article/details/39252897
    http://jingyan.baidu.com/article/bad08e1ee14ae409c85121cf.html
  • 原文地址:https://www.cnblogs.com/franson-2016/p/12717890.html
Copyright © 2020-2023  润新知