一种前后端分离数据安全交互的实现方法及系统技术方案

技术编号:26072092 阅读:25 留言:0更新日期:2020-10-28 16:45
本发明专利技术公开了一种前后端分离数据安全交互的实现方法及系统,所述方法包括如下步骤:步骤S1,后端根据前端的有效用户账号信息生成全局唯一标识凭证,并在该全局唯一标识凭证基础上,基于DH算法与前端交换密钥;步骤S2,前端进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端;步骤S3,后端于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息。

【技术实现步骤摘要】
一种前后端分离数据安全交互的实现方法及系统
本专利技术涉及Web应用
,特别是涉及一种前后端分离数据安全交互的实现方法及系统。
技术介绍
目前,随着Web应用技术的发展,传统互联网前后端耦合式的应用逐渐被前后端分离的Web应用系统取代。传统Web应用中,多采用session机制来维持会话以进行客户端和服务端的数据交互过程中的认证;而在前后端分离的架构下,前后端职责分离:前端处理页面逻辑,后端负责数据处理,前后端独立开发,不相互依赖,可同时进行开发,并且后端可以跨终端(平台)提供服务。在前后端分离的架构下,一般都是后端提供一系列的数据接口供多种前端调用,而这些接口通常是无状态的,暴露在复杂的互联网环境中,前后端数据的交互存在着被篡改和重放等重大安全问题。
技术实现思路
为克服上述现有技术存在的不足,本专利技术之目的在于提供一种前后端分离数据安全交互的实现方法及系统,以解决现有Web应用中前后端分离数据交互过程中安全性不足的问题。为达上述目的,本专利技术提供一种前后端分离数据安全交互的实现方法,包括如下步骤:步骤S1,后端根据前端的有效用户账号信息生成全局唯一标识凭证,并在该全局唯一标识凭证基础上,基于DH算法与前端交换密钥;步骤S2,前端进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端;步骤S3,后端于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息。优选地,步骤S1进一步包括:步骤S100,后端于接收到前端传递的有效用户账号信息时,根据该有效用户账号信息生成全局唯一标识凭证;步骤S101,后端生成DH算法所需的私钥dh_private_key以及两个很大的质数p、g,使用DH算法计算后端公钥dh_public_key,并将生成的全局唯一标识凭证、质数p和g以及后端公钥dh_public_key返回给前端,同时后端将相关数据记录入库;步骤S102,前端将返回的所述全局唯一标识凭证、质数p和g以及后端公钥dh_public_key存入客户端,并将前端私钥private_key存入客户端,基于所述前端私钥private_key以及后端返回的质数p、g计算前端公钥public_key;步骤S103,前端利用所述全局唯一标识凭证,将前端公钥public_key发送至后端;步骤S104,后端验证所述全局唯一标识凭证有效性,将所述全局唯一标识凭证与所述前端公钥public_key进行绑定入库,完成密钥交换。优选地,所述后端公钥dh_public_key计算如下:dh_public_key=(g^dh_private_key)%p。优选地,所述前端公钥public_key计算如下:public_key=(g^private_key)%p。优选地,步骤S2进一步包括:步骤S200,请求数据准备,在请求原始数据中增加一个随机字符串,通过参数'_'传递,并生成随机RequestId,获取当前Unix时间戳,以及提取将要发生的HTTP请求中部分消息;步骤S201,对请求数据进行摘要,生成请求摘要,得到签名Signature;步骤S202,调用统一数据请求方法将所述全局唯一标识凭证、签名Signature、Unix时间戳、RequestId放入HTTP请求的自定义的HTTP头文件中,再将完整请求发送给后端。优选地,于步骤S201中,将要参与计算摘要的元素用换行符拼接成签名原文,使用DH算法交换的共享密钥shared_key作为签名密钥,对所述签名原文进行Hmac-SHA256摘要,得到签名Signature。优选地,于步骤S201中,所述参与计算摘要的元素包括但不限于:HTTP动词;HTTP头Content-Type的值;将要请求接口的URI;前端接口数据产生的随机字符串;当前的Unix时间戳timestamp;用于标记RequestId产生的nonce。优选地,所述共享密钥计算如下:shared_key=(dh_public_key^private_key)%p。优选地,步骤S3进一步包括:步骤S300,校验所述全局唯一标识凭证的有效性;步骤S301,验证RequestId是否已经存在;步骤S302,校验传递Unix时间戳与服务器时间差;步骤S303,计算出所述全局唯一标识凭证绑定的共享密钥,并按照步骤S201同样规则进行摘要签名计算,并将其与前端请求的签名比对;步骤S304,上述处理过程任何一项校验不符合直接返回错误,全部校验通过视为合法请求,继续后续的业务数据处理。为达到上述目的,本专利技术还提供一种前后端分离数据安全交互的实现系统,包括:前端,通过调用登录接口,传递有效用户账号信息至后端,在获得后端生成的全局唯一标识凭证的基础上,采用DH算法与后端交换密钥,进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端;后端,根据前端的有效用户账号信息生成全局唯一标识凭证,并在该全局唯一标识凭证基础上,基于DH算法与前端交换密钥,于接收到前端的数据请求时,于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息。与现有技术相比,本专利技术一种前后端分离数据安全交互的实现方法及系统通过前端调用登录接口,传递有效用户账号信息至后端,在获得后端生成的全局唯一标识凭证的基础上,采用DH算法与后端交换密钥,并在进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端,后端于接收到前端的数据请求时,于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息,本专利技术使前后端分离数据交互的安全得以保证,无论是使用网络嗅探或安全测试工具进行拦截修改请求或请求重放,都不能通过后端校验,在几乎不影响系统数据传输效率的情况下,保证了应用数据传输的可靠性,极大提高了应用系统的安全性。附图说明图1为本专利技术一种前后端分离数据安全交互的实现方法的步骤流程图;图2为本专利技术一种前后端分离数据安全交互的实现系统的系统架构图;图3为本专利技术实施例中前后端分离数据安全交互的实现流程图。具体实施方式以下通过特定的具体实例并结合附图说明本专利技术的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本专利技术的其它优点与功效。本专利技术亦可通过其它不同的具体实例加本文档来自技高网...

【技术保护点】
1.一种前后端分离数据安全交互的实现方法,包括如下步骤:/n步骤S1,后端根据前端的有效用户账号信息生成全局唯一标识凭证,并在该全局唯一标识凭证基础上,基于DH算法与前端交换密钥;/n步骤S2,前端进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端;/n步骤S3,后端于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息。/n

【技术特征摘要】
1.一种前后端分离数据安全交互的实现方法,包括如下步骤:
步骤S1,后端根据前端的有效用户账号信息生成全局唯一标识凭证,并在该全局唯一标识凭证基础上,基于DH算法与前端交换密钥;
步骤S2,前端进行数据请求时,调用统一数据请求方法完成请求数据的准备以及签名的计算,并将生成的所述全局唯一标识凭证、签名、Unix时间戳以及随机RequestId加入请求中发送至后端;
步骤S3,后端于统一入口处拦截并校验请求,若拦截校验通过,则处理业务逻辑数据,并返回结果,若拦截校验未通过,则返回错误信息。


2.如权利要求1所述的一种前后端分离数据安全交互的实现方法,其特征在于,步骤S1进一步包括:
步骤S100,后端于接收到前端传递的有效用户账号信息时,根据该有效用户账号信息生成全局唯一标识凭证;
步骤S101,后端生成DH算法所需的私钥dh_private_key以及两个质数p、g,使用DH算法计算后端公钥dh_public_key,并将生成的全局唯一标识凭证、质数p和g以及后端公钥dh_public_key返回给前端,同时后端将相关数据记录入库;
步骤S102,前端将返回的所述全局唯一标识凭证、质数p和g以及后端公钥dh_public_key存入客户端,并前端私钥private_key存入客户端,基于所述前端私钥private_key以及后端返回的质数p、g计算前端公钥public_key;
步骤S103,前端利用所述全局唯一标识凭证,将前端公钥public_key发送至后端;
步骤S104,后端验证所述全局唯一标识凭证有效性,将所述全局唯一标识凭证与所述前端公钥public_key进行绑定入库,完成密钥交换。


3.如权利要求2所述的一种前后端分离数据安全交互的实现方法,其特征在于,所述后端公钥dh_public_key计算如下:
dh_public_key=(g^dh_private_key)%p。


4.如权利要求2所述的一种前后端分离数据安全交互的实现方法,其特征在于,所述前端公钥public_key计算如下:
public_key=(g^private_key)%p。


5.如权利要求2所述的一种前后端分离数据安全交互的实现方法,其特征在于,步骤S2进一步包括:
步骤S200,请求数据准备,在请求原始数据中额外增加一个随机字符串,通过参数'_'传递,并生成随机RequestId,获取当前Unix时间戳,以及提取将要发生的HTTP请求中部分消息;
步骤S201,对请求数据进行摘要,生成请求摘要,得...

【专利技术属性】
技术研发人员:甘磊连恒温超金明炜
申请(专利权)人:上海英方软件股份有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1