一种前后端数据传输防篡改重放的方法和系统与流程

未命名 09-22 阅读:214 评论:0


1.本发明涉及数据传输领域,尤其涉及一种前后端数据传输防篡改重放的方法和系统。


背景技术:

2.在客户端和服务端的通信过程中,会遇到很多的安全问题,无法确认收到的信息是否是真实有效的,而不是中途被人掉包的。即使采用https,诸如charles、wireshark之类的专业抓包工具也可以扮演证书颁发、校验的角色,因此可以查看到数据,拿到请求信息后对请求信息进行修改后再次请求,从而得到许多敏感数据,或者原封不动的发起第二个请求,在服务器上生产了部分脏数据,都会威胁到我们的系统安全。
3.因此,这个时候就需要对前后端数据传输进行防重放、防篡改,它的作用就是用来证明消息在通信过程中未被掉包,是真实有效的。


技术实现要素:

4.为解决gpu资源消耗的问题,本发明提供了一种结合数据加密防止前后端数据传输防篡改重放的方法和系统,其目的是在保证系统本身功能的前提下,提高系统的安全和可靠性,证明消息在通信过程中未被掉包,是真实有效的,保证了服务数据的安全,防止外部恶意重复或延迟有效数据的攻击,提高了系统的性能和可靠性。
5.为实现上述目的,本发明实施例提供了如下的技术方案:
6.第一方面,在本发明提供的一个实施例中,提供了一种前后端数据传输防篡改重放的方法,包括以下步骤:
7.当客户端向服务端发送请求时,生成一个签名并添加到请求参数中;
8.服务端接收到客户端请求后,基于服务端创建签名过滤器和签名验证模块对客户端请求进行过滤及并对签名进行校验;
9.若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。
10.作为本发明的进一步方案,当客户端向服务端发送请求时,基于签名模块生成一个签名,并对签名进行加密,得到加密后的签名并添加到请求参数中。
11.作为本发明的进一步方案,在签名模块生成一个签名时,包括:
12.获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名;组合得到签名为将获取的服务端时间、系统登录信息和用户信息按照预设结构进行拼接,得到一个字符串形式的签名。
13.作为本发明的进一步方案,对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。
14.作为本发明的进一步方案,服务端接收到客户端请求后,基于服务端创建的签名过滤器拦截请求,获取签名并使用sm2进行解密,将解密后的签名传到签名验证模块,对签
名进行校验。
15.作为本发明的进一步方案,对签名进行校验,包括:
16.根据系统登录状态获取登录信息和用户信息,校验签名和客户端的登录信息和用户信息,校验不通过则判定为非法请求,返回错误信息,通过校验则进行下一步;
17.校验签名时间和服务器时间,如果时间间隔超过定义的阈值,则校验不通过判定为非法请求,返回错误信息,通过校验则进行下一步;
18.判断redis数据库中是否存在该签名标识,存在则表示标识不唯一,校验不通过,判定为非法请求,否则本次请求为有效请求,放行本次请求,并将签名放入redis且设置过期时间。
19.第二方面,在本发明提供的一个实施例中,提供了一种前后端数据传输防篡改重放的系统,该系统包括客户端、服务端、签名模块、签名过滤器、签名验证模块:
20.所述客户端用于向服务端发送请求;
21.所述签名模块用于在客户端向服务端发送请求时,生成一个签名并添加到请求参数中;
22.所述服务端用于接收所述客户端请求,并将客户端请求发送至签名过滤器;
23.所述签名过滤器用于拦截请求并对客户端请求进行过滤后传到签名验证模块;
24.所述签名验证模块用于对签名进行校验,若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。
25.作为本发明的进一步方案,所述签名模块还用于在客户端向服务端发送请求时,获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名。
26.作为本发明的进一步方案,所述签名模块对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。
27.作为本发明的进一步方案,所述签名过滤器还用于使用sm2对拦截请求获取的签名进行解密,将解密后的签名传到签名验证模块对签名进行校验。
28.第三方面,在本发明提供的又一个实施例中,提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现前后端数据传输防篡改重放的方法的步骤。
29.第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述前后端数据传输防篡改重放的方法的步骤。
30.本发明提供的技术方案,与现有的技术方案相比,具有如下有益效果:
31.本发明提供的前后端数据传输防篡改重放的方法和系统,在保证系统本身功能的前提下,提高系统的安全和可靠性,证明消息在通信过程中未被掉包,是真实有效的,保证了服务数据的安全,防止外部恶意重复或延迟有效数据的攻击,提高了系统的性能和可靠性。
32.本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
33.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。在附图中:
34.图1为本发明一个实施例的一种前后端数据传输防篡改重放的方法的流程图。
35.图2为本发明一个实施例的一种前后端数据传输防篡改重放的系统的结构框图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
38.应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
39.应当理解,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一回调函数和第二回调函数仅仅是为了区分不同的回调函数,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
40.由于在客户端和服务端的通信过程中无法确认收到的信息是否是真实有效的,需要对前后端数据传输进行防重放、防篡改,本发明提供了一种前后端数据传输防篡改重放的方法和系统,在保证系统本身功能的前提下,提高系统的安全和可靠性,证明消息在通信过程中未被掉包,是真实有效的,保证了服务数据的安全,防止外部恶意重复或延迟有效数据的攻击,提高了系统的性能和可靠性。
41.还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
42.具体地,下面结合附图,对本发明实施例作进一步阐述。
43.请参阅图1,图1是本发明实施例提供的一种前后端数据传输防篡改重放的方法的流程图,本发明实施例提供的一种前后端数据传输防篡改重放的方法包括步骤s10至步骤s40。
44.s10、当客户端向服务端发送请求时,生成一个签名并添加到请求参数中;
45.s20、服务端接收到客户端请求后,基于服务端创建签名过滤器和签名验证模块对客户端请求进行过滤及并对签名进行校验;
46.s30、若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。
47.在本实施例中,当客户端向服务端发送请求时,基于签名模块生成一个签名,并对签名进行加密,得到加密后的签名并添加到请求参数中。
48.在签名模块生成一个签名时,包括:
49.获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名;组合得到签名为将获取的服务端时间、系统登录信息和用户信息按照预设结构进行拼接,得到一个字符串形式的签名。
50.其中,对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。
51.因此,在本发明中,当客户端向服务端发送请求时,在签名模块生成一个签名,具体为获取一个唯一标识、客户端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名,并对签名进行加密,得到签名后在请求参数中加上签名。
52.在本发明的实施例中,当服务端接收到客户端请求后,基于服务端创建的签名过滤器拦截请求,获取签名并使用sm2进行解密,将解密后的签名传到签名验证模块,对签名进行校验。
53.其中,对签名进行校验,包括:
54.根据系统登录状态获取登录信息和用户信息,校验签名和客户端的登录信息和用户信息,校验不通过则判定为非法请求,返回错误信息,通过校验则进行下一步;
55.校验签名时间和服务器时间,如果时间间隔超过定义的阈值,则校验不通过判定为非法请求,返回错误信息,通过校验则进行下一步;
56.判断redis数据库中是否存在该签名标识,存在则表示标识不唯一,校验不通过,判定为非法请求,否则本次请求为有效请求,放行本次请求,并将签名放入redis且设置过期时间。
57.因此,在客户端创建签名过滤器和签名验证模块,服务端接收到客户端请求后,签名过滤器拦截请求,在请求参数中获取签名并进行解密,并将解密后的签名传入签名验证模块;签名验证模块对签名进行校验,具体为:首先根据系统登录状态获取登录信息和用户信息,校验签名和客户端的登录信息和用户信息,校验不通过则判定为非法请求,返回错误信息,通过校验则进行下一步;校验签名时间和服务器时间,如果时间间隔超过定义的阈值,则校验不通过判定为非法请求,返回错误信息,通过校验则进行下一步;判断redis(即远程字典服务)数据库中是否存在该签名标识,存在则表示标识不唯一,校验不通过,判定为非法请求,否则本次请求为有效请求,放行本次请求,并将签名放入redis且设置过期时间。
58.本发明保证了在客户端和服务端的通信过程中数据的真实有效,提高系统的安全和可靠性,防止外部恶意重复或延迟有效数据的攻击,为系统的运行提供了保障。
59.应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的
步骤或者阶段的至少一部分轮流或者交替地执行。
60.参见图2所示,本发明的一个实施例提供一种前后端数据传输防篡改重放的系统,该系统包括客户端、服务端、签名模块、签名过滤器、签名验证模块。
61.在本发明实施例中,所述客户端用于向服务端发送请求;
62.所述签名模块用于在客户端向服务端发送请求时,生成一个签名并添加到请求参数中;
63.所述服务端用于接收所述客户端请求,并将客户端请求发送至签名过滤器;
64.所述签名过滤器用于拦截请求并对客户端请求进行过滤后传到签名验证模块;
65.所述签名验证模块用于对签名进行校验,若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。
66.在本发明实施例中,所述签名模块还用于在客户端向服务端发送请求时,获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名。
67.其中,所述签名模块对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。所述签名过滤器还用于使用sm2对拦截请求获取的签名进行解密,将解密后的签名传到签名验证模块对签名进行校验。
68.需要特别说明的是,前后端数据传输防篡改重放的系统进行执行如前述实施例的一种前后端数据传输防篡改重放的方法,因此,本实施例中对前后端数据传输防篡改重放的方法不再详细介绍。
69.在一个实施例中,在本发明的实施例中还提供了一种计算机设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的前后端数据传输防篡改重放的方法,该处理器执行指令时实现上述各方法实施例中的步骤:
70.当客户端向服务端发送请求时,生成一个唯一标识,获取服务端时间、系统登录信息和用户信息,将这些参数进行组合,得到签名(sign),对签名进行加密,并将签名加入到请求参数中。在服务端创建签名过滤器和签名验证模块,服务端接收到客户端请求后,签名过滤器拦截请求获取签名并进行解密,将解密后的签名传到签名验证模块,对签名进行校验,校验通过则认为是一次合法请求,否则则认为参数被篡改或重放,判定为一次非法请求。
71.在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由asic、fpga、dsp等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
72.所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、pda等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量计算机或网络服务器构成的云,其中,
云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、vpn网络等。
73.在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤:
74.当客户端向服务端发送请求时,生成一个唯一标识,获取服务端时间、系统登录信息和用户信息,将这些参数进行组合,得到签名(sign),对签名进行加密,并将签名加入到请求参数中。在服务端创建签名过滤器和签名验证模块,服务端接收到客户端请求后,签名过滤器拦截请求获取签名并进行解密,将解密后的签名传到签名验证模块,对签名进行校验,校验通过则认为是一次合法请求,否则则认为参数被篡改或重放,判定为一次非法请求。
75.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
76.综上所述,本发明提供的前后端数据传输防篡改重放的方法和系统,当客户端向服务端发送请求时,生成一个唯一标识,获取服务端时间、系统登录信息和用户信息,将这些参数以结构(name=value&name=value

)进行拼接,得到一个字符串形式的签名(sign),使用sm2加密方式对签名进行加密,在请求头中增加参数sign,并设置为加密后的签名(sign)值,用于标识该请求的唯一性。在服务端创建签名过滤器和签名验证模块,服务端接收到客户端请求后,签名过滤器拦截请求获取签名并使用sm2进行解密,将解密后的签名传到签名验证模块,对签名进行校验,校验通过则认为是一次合法请求,否则则认为参数被篡改或重放,判定为一次非法请求。该发明提供了一种前后端数据传输放篡改、防重放的实现方法,保证了在客户端和服务端的通信过程中数据的真实有效,防止了外部恶意重复或延迟有效数据的攻击,为系统的运行和数据传输提供了安全保障,提高了系统的可靠性。
77.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种前后端数据传输防篡改重放的方法,其特征在于,该方法包括以下步骤:当客户端向服务端发送请求时,生成一个签名并添加到请求参数中;服务端接收到客户端请求后,基于服务端创建签名过滤器和签名验证模块对客户端请求进行过滤及并对签名进行校验;若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。2.如权利要求1所述的前后端数据传输防篡改重放的方法,其特征在于,当客户端向服务端发送请求时,基于签名模块生成一个签名,并对签名进行加密,得到加密后的签名并添加到请求参数中。3.如权利要求2所述的前后端数据传输防篡改重放的方法,其特征在于,在签名模块生成一个签名时,包括:获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名;组合得到签名为将获取的服务端时间、系统登录信息和用户信息按照预设结构进行拼接,得到一个字符串形式的签名。4.如权利要求3所述的前后端数据传输防篡改重放的方法,其特征在于,对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。5.如权利要求4所述的前后端数据传输防篡改重放的方法,其特征在于,服务端接收到客户端请求后,基于服务端创建的签名过滤器拦截请求,获取签名并使用sm2进行解密,将解密后的签名传到签名验证模块,对签名进行校验。6.如权利要求5所述的前后端数据传输防篡改重放的方法,其特征在于,对签名进行校验,包括:根据系统登录状态获取登录信息和用户信息,校验签名和客户端的登录信息和用户信息,校验不通过则判定为非法请求,返回错误信息,通过校验则进行下一步;校验签名时间和服务器时间,如果时间间隔超过定义的阈值,则校验不通过判定为非法请求,返回错误信息,通过校验则进行下一步;判断redis数据库中是否存在该签名标识,存在则表示标识不唯一,校验不通过,判定为非法请求,否则本次请求为有效请求,放行本次请求,并将签名放入redis且设置过期时间。7.一种前后端数据传输防篡改重放的系统,其特征在于,该系统包括客户端、服务端、签名模块、签名过滤器、签名验证模块;所述客户端用于向服务端发送请求;所述签名模块用于在客户端向服务端发送请求时,生成一个签名并添加到请求参数中;所述服务端用于接收所述客户端请求,并将客户端请求发送至签名过滤器;所述签名过滤器用于拦截请求并对客户端请求进行过滤后传到签名验证模块;所述签名验证模块用于对签名进行校验,若校验通过,则判定为一次合法请求,若校验不通过,则认为参数被篡改或重放,判定为一次非法请求。8.如权利要求7所述的前后端数据传输防篡改重放的系统,其特征在于,所述签名模块
还用于在客户端向服务端发送请求时,获取一个唯一标识、服务端时间,并根据系统当前的登录状况,获取登录信息和用户信息,将获取到的所有信息进行组合得到签名。9.如权利要求8所述的前后端数据传输防篡改重放的系统,其特征在于,所述签名模块对签名进行加密时,使用sm2加密方式对签名进行加密,在请求头中增加签名参数,设置为加密后的签名值,用于标识该请求的唯一性。10.如权利要求9所述的前后端数据传输防篡改重放的系统,其特征在于,所述签名过滤器还用于使用sm2对拦截请求获取的签名进行解密,将解密后的签名传到签名验证模块对签名进行校验。

技术总结
本发明涉及数据传输领域,具体涉及一种前后端数据传输防篡改重放的方法和系统。该方法为当客户端向服务端发送请求时,生成一个字符串形式的签名,对签名进行加密,在服务端创建签名过滤器和签名验证模块,服务端接收到客户端请求后,签名过滤器拦截请求获取签名并解密,将解密后的签名传到签名验证模块,对签名进行校验,校验通过则认为是一次合法请求,否则则认为参数被篡改或重放,判定为一次非法请求。本发明保证了在客户端和服务端的通信过程中数据的真实有效,防止了外部恶意重复或延迟有效数据的攻击,为系统的运行和数据传输提供了安全保障,提高了系统的可靠性。提高了系统的可靠性。提高了系统的可靠性。


技术研发人员:冯永玉 张峰 王燕 薛秀荣 张华 高洁 王人杰 汤先伟
受保护的技术使用者:山东省国土空间数据和遥感技术研究院(山东省海域动态监视监测中心)
技术研发日:2023.03.21
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐