关于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与服务端都是明文通信,一抓包就能看到请求参数以及返回数据,所以为了防止被抓包我们必须要对数据进行加密处理。

防抓包——数据加密

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

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

对称加密

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

 

posted @   Franson  阅读(1106)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2016-06-30 java中关于线程间协作所用关键字synchronized,wait,notify的用法
点击右上角即可分享
微信分享提示