加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前后端API交互如何保证数据安全性?

发布时间:2019-04-10 05:38:00 所属栏目:建站 来源:尹吉欢
导读:副标题#e# 前言 前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。 网页或者ap

axios拦截器中统一处理代码:

  1. // 添加请求拦截器 
  2. axios.interceptors.request.use(function (config) { 
  3.     // 对所有POST请加密,必须是json数据提交,不支持表单 
  4.     if (config.method == "post") { 
  5.         config.data = EncryptData(JSON.stringify(config.data)); 
  6.     } 
  7.     return config; 
  8.   }, function (error) { 
  9.     return Promise.reject(error); 
  10. }); 
  11.  
  12. // 添加响应拦截器 
  13. axios.interceptors.response.use(function (response) { 
  14.     // 后端返回字符串表示需要解密操作 
  15.     if(typeof(response.data) == "string"){ 
  16.         response.data = DecryptData(response.data); 
  17.     } 
  18.     return response; 
  19.   }, function (error) { 
  20.     return Promise.reject(error); 
  21. }); 

到此为止,我们就为整个前后端交互的通信做了一个加密的操作,只要加密的key不泄露,别人得到你的数据也没用,问题是如何保证key不泄露呢?

服务端的安全性较高,可以存储在数据库中或者配置文件中,毕竟在我们自己的服务器上,最危险的其实就时前端了,app还好,可以打包,但是要防止反编译等等问题。

如果是webapp则可以依赖于js加密来实现,下面我给大家介绍一种动态获取加密key的方式,只不过实现起来比较复杂,我们不上代码,只讲思路:

加密算法有对称加密和非对称加密,AES是对称加密,RSA是非对称加密。之所以用AES加密数据是因为效率高,RSA运行速度慢,可以用于签名操作。

我们可以用这2种算法互补,来保证安全性,用RSA来加密传输AES的秘钥,用AES来加密数据,两者相互结合,优势互补。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读