CN110221925A - 数据提交请求的处理方法、装置和计算机设备 - Google Patents

数据提交请求的处理方法、装置和计算机设备 Download PDF

Info

Publication number
CN110221925A
CN110221925A CN201910395310.0A CN201910395310A CN110221925A CN 110221925 A CN110221925 A CN 110221925A CN 201910395310 A CN201910395310 A CN 201910395310A CN 110221925 A CN110221925 A CN 110221925A
Authority
CN
China
Prior art keywords
data
signature value
submission request
combined
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910395310.0A
Other languages
English (en)
Inventor
易杉峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910395310.0A priority Critical patent/CN110221925A/zh
Publication of CN110221925A publication Critical patent/CN110221925A/zh
Priority to PCT/CN2019/119219 priority patent/WO2020228292A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请揭示了一种数据提交请求的处理方法、装置和计算机设备,其中方法包括:通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。通过本申请能有效地防止数据出现重复提交的问题,提高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。

Description

数据提交请求的处理方法、装置和计算机设备
技术领域
本申请涉及通讯技术领域,具体涉及一种数据提交请求的处理方法、装置 和计算机设备。
背景技术
在现有的互联网应用中,用户通常是通过客户端调用服务器提供的接口来 与服务器进行数据交互。当用户通过客户端向服务器发送数据提交请求时,通 常是通过点击数据提交的按钮来触发客户端上的数据提交操作,但是如果在点 按钮的过程中出现了网络出现延迟或故障、客户端出现卡顿等情形,那么用户 会无法判断数据提交操作是否成功。此时通常会出现如果数据提交操作成功了, 但用户误认为数据没有提交成功而选择通过按钮进行再次提交的情况,当出现 这种情况时,由于后续再次提交的数据提交请求的参数数据与之前提交的数据 提交请求内的参数数据是相同的,则服务器可以判断出用户后续再次提交的数 据是重复提交,并且不会对后续再次提交的数据提交操作进行响应。但如果在 用户后续执行对之前的数据的再次提交的过程中,如果出现了不法分子对用户 再次提交的数据所对应的参数数据中各参数的顺序进行了篡改,则此时服务器 在接收到经过篡改后的数据提交请求后,会无法判断出该篡改后的数据提交请 求其实是属于重复的数据提交操作,并会误认为其是一个新的数据提交操作, 从而导致了服务器对数据请求的重复处理,从而可能出现服务器多次写入重复 的数据的情况,使得服务器的处理速度变慢,进而影响服务器的业务的正常开 展,甚至造成服务器的崩溃或瘫痪。
发明内容
本申请的主要目的为提供一种数据提交请求的处理方法、装置和计算机设 备,旨在解决现有的客户端向服务器发送数据提交请求的过程中可能会出现重 复提交的技术问题。
本申请提出一种数据提交请求的处理方法,所述方法包括步骤:
通过指定接口接收客户端发送的数据提交请求;
获取与所述数据提交请求对应的参数数据;
对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序 进行组合,得到组合的参数数据;
对所述组合的参数数据进行签名处理,生成组合签名值;
将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应 的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史 数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所 述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
可选地,所述通过指定接口接收客户端发送的数据提交请求的步骤之前, 包括:
根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述 指定接口;
接收所述开发人员输入的防重复提交代码;
创建包含所述防重复提交代码的功能模块;
控制所述指定接口调用所述功能模块。
可选地,所述获取与所述数据提交请求对应的参数数据的步骤,包括:
调用预设的拦截器对所述数据提交请求进行拦截;
拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参 数数据。
可选地,所述参数数据包括身份标识参数与业务请求参数,所述对所述参 数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得 到组合的参数数据的步骤,包括:
提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名 称;
将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;
根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所 述组合的参数数据。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行 处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所 述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发 送至所述客户端;
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对 所述数据提交请求进行响应。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行 处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所 述预存储的签名值的存在时间是否小于预设的第一失效时间;
若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列 表中,并对所述数据提交请求进行处理得到对应的第二响应数据;
将所述第二响应数据发送至所述客户端;
若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
可选地,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行 处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所 述预存储的签名值的存在时间是否小于预设的第二失效时间;
若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次 数是否小于预设的重复提交次数;
若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述 预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请 求进行处理得到对应的第三响应数据;
将所述第三响应数据发送至所述客户端;
若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
本申请还提供一种数据提交请求的处理装置,包括:
第一接收模块,用于通过指定接口接收客户端发送的数据提交请求;
第一获取模块,用于获取与所述数据提交请求对应的参数数据;
排序模块,用于对所述参数数据按照首字母的自然顺序进行排序,并依照 所述排序的顺序进行组合,得到组合的参数数据;
签名模块,用于对所述组合的参数数据进行签名处理,生成组合签名值;
匹配模块,用于将所述组合签名值与数据缓存列表内预存储的签名值进行 匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表 内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述 组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签 名值不相同;
处理模块,用于根据所述匹配结果,按照预设规则对所述数据提交请求进 行处理。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储 有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计 算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的数据提交请求的处理方法、装置和计算机设备,具有以下 有益效果:
本申请中提供的数据提交请求的处理方法、装置和计算机设备,通过指定 接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数 据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序 进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理,生成 组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹配, 得到对应的匹配结果,其中,所述匹配结果包括所述组合签名值与所述预存储 的签名值相同、或所述组合签名值与所述预存储的签名值不相同;根据所述匹 配结果,按照预设规则对所述数据提交请求进行处理。通过本申请能有效地防 止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提高了数据 提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
附图说明
图1是本申请一实施例的数据提交请求的处理方法的流程示意图;
图2是本申请一实施例的数据提交请求的处理装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说 明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定 本申请。
参照图1,本申请一实施例的数据提交请求的处理方法,包括:
S1:通过指定接口接收客户端发送的数据提交请求;
S2:获取与所述数据提交请求对应的参数数据;
S3:对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的 顺序进行组合,得到组合的参数数据;
S4:对所述组合的参数数据进行签名处理,生成组合签名值;
S5:将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到 对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与 历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值 与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
S6:根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
如上述步骤S1至S3所述,本实施例的方法对应的执行主体为数据提交请 求的处理装置,具体可为服务器。上述指定接口是具有防重复提交功能的接口, 即配置有防重复代码的接口,例如该指定接口可不包括查询接口或页面接口, 上述指定接口可根据开发人员输入的接口信息进行确定。服务器在通过上述指 定接口接收到客户端发送过来的数据提交请求后,可从该数据请求中获取客户 端的地址信息,从而根据该地址信息定位到对应的该客户端,然后从该客户端 中下载得到与该数据提交请求对应的参数数据,其中该参数数据包括身份标识 参数与业务请求参数,该参数数据可为一串字符串的形式,举例地,具体的字 符串的形式可为“第一参数名称+第一参数数值/第二参数名称+第二参数数值/……”。在获得了上述参数数据后,可通过将该参数数据中的身份标识参数与业 务请求参数按照首字母的自然顺序进行排序,并依照该排序的顺序进行组合得 到上述组合的参数数据,其中上述首字母的自然顺序是指英文字母自然的排列 顺序,即ABCD…MNOP…WXYZ。
如上述步骤S4至S6所述,在得到上述组合的参数数据后,通过对该组合 的参数数据进行签名处理,可得到对应的组合签名值,其中上述组合签名值可 为数字、字符串或者数字与字符串的结合。另外,可采用签名运算算法对该组 合的指定参数数据进行签名处理,对该签名运算算法不作限定,只需要通过该 签名运算算法使得计算得到的组合签名值是唯一的且不可逆的即可。具体地, 上述签名运算算法可采用哈希运算算法,根据哈希运算算法对上述组合的参数 数据进行哈希运算,便可得到对应的组合哈希值,即上述的组合签名值。然后 将组合签名值与数据缓存列表内预存储的签名值进行匹配,得到匹配结果。之 后根据上述匹配结果,可按照预设规则对该数据提交请求进行对应的处理。其 中,上述数据缓存列表内包含有预存储的签名值,且上述预存储的签名值为数 据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,该预存储的 签名值为由对应的历史数据提交请求对应的历史参数数据经过首字母的自然顺 序排序的处理后再进行签名处理后得到的。上述对该数据提交请求进行对应的 处理的具体内容包括对该数据提交请求进行处理得到对应的处理结果或者限制 对该数据提交请求进行响应。在本实施例,当通过指定接口接收到客户端发送 的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母的自 然顺序进行排序并依照该排序的顺序进行组合得到组合的参数数据,然后对该 组合的参数数据进行签名得到组合签名值,之后将该组合签名值与数据缓存列 表内预存储的签名值进行匹配来得到匹配结果,并根据该匹配结果来对数据提 交请求进行对应的处理,若该数据提交请求为重复提交的请求,则会限制对该 数据提交请求进行响应,从而有利于避免出现重复提交的数据提交请求由于参 数数据中各参数的顺序被篡改后却被服务器误认为是新的数据提交请求的情况, 有效地防止了数据出现重复提交的问题,保证了服务器的业务的正常开展,提 高了数据提交请求的处理效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述步骤S1之前,包括:
S100:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应 的所述指定接口;
S101:接收所述开发人员输入的防重复提交代码;
S102:创建包含所述防重复提交代码的功能模块;
S103:控制所述指定接口调用所述功能模块。
如上述步骤S100至S103所述,服务器会根据开发人员输入的指定接口信 息,来获取得到与上述指定接口信息对应的上述指定接口,并进一步来为与该 指定接口信息相对应的指定接口设置防重复提交功能,以实现自定义配置需要 防重复提交的指定接口。具体地,在接收到开发人员输入的防重复提交代码后, 可创建出包含该防重复提交代码的功能模块,然后从内部查找出与上述开发人 员输入的指定接口信息对应的指定接口url(Uniform Resource Locator,统一资 源定位符),最后控制该指定接口url实现对上述功能模块的调用,从而实现根 据开发人员的使用意图来配置需要防重复提交的指定接口,而对一些客户不经 常使用的查询接口或页面接口不设置防重复提交功能,能有效地降低服务器系 统的资源消耗,也能有效地提高客户的使用体验。进一步地,在实际应用上, 还可以将上述包含防重复提交代码的功能模块外挂到其它的使用场景,例如负 载均衡器或者流量控制分发器,等等,以实现该功能模块的防重复提交在多种 使用场景的广泛应用。
进一步地,本申请一实施例中,上述步骤S2,包括:
S200:调用预设的拦截器对所述数据提交请求进行拦截;
S201:拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
S202:根据所述地址信息,从所述客户端获取与所述数据提交请求对应的 所述参数数据。
如上述步骤S200所述,预先创建一个具有拦截请求功能的过滤器,当接收 到客户端发出的数据提交请求后,为了避免出现请求重复提交导致重复的数据 提交请求触发了多个相同的业务处理逻辑的情况,即服务器对多个相同的数据 提交请求执行了对应的多个业务逻辑处理的情况,本实施例的服务器不会立即 对上述数据提交请求进行响应来得到对应的响应结果,并向客户端返回该响应 结果,而服务器首先会调用预先创建的上述拦截器来对该数据提交请求进行拦 截,并在拦截成功后从该数据提交请求提取出客户端的地址信息,之后再根据 客户端的地址信息从客户端内下载与该数据提交请求对应的上述参数数据,以 便在确定该数据提交请求是否满足重复提交的条件之后,进一步对该参数数据 进行后续的相应处理。通过对接收到的数据请求进行拦截并判断该数据提交请 求是否属于数据请求的重复提交,有利于避免重复的数据请求触发多次相同的 业务处理逻辑,有效地保证了服务器业务处理的严密性以及服务器的安全可靠 性。
参照图2,进一步地,本申请一实施例中,上述步骤S3,包括:
S300:提取所述身份标识参数的第一参数名称与所述业务请求参数的第二 参数名称;
S301:将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进 行排序;
S302:根据所述排序对所述身份标识参数与所述业务请求参数进行组合, 得到所述组合的参数数据。
如上述步骤S300至S302所述,上述的参数数据包括身份标识参数与业务 请求参数,上述身份标识参数包括身份标识参数名称sessionId,ip以及对应的 身份标识参数数值,该身份标识参数能够指代发起该数据请求的客户端的地址 与身份,例如上述身份标识参数包括 “sessionId=95d5d86f-bafa-474a-b457-b60a5f661def”以及“ip=183.14.135.240”。 上述业务请求参数对应用户需要办理的业务,包含用户需要办理的业务情况, 假如用户需要为张三充值10元的业务请求可表示为: “name=zhangsan/charge=10”。上述对参数数据按照首字母的自然顺序进行排序, 得到组合的参数数据的过程具体为:提取出上述身份标识参数的第一参数名称 与业务请求参数的第二参数名称,然后将上述第一参数名称与第二参数名称按 照首字母的自然顺序进行排序,再根据上述排序对身份标识参数与所述业务请 求参数进行组合来得到所述组合后的上述指定参数数据。举例地,结合上述的 例子,按照对用户输入的数据提交请求对应的参数数据进行按照首字母的自然 顺序排序的处理后,得到的组合的参数数据为:“charge=10/ip=183.14.135.240/ name=zhangsan/sessionId=95d5d86f-bafa-474a-b457-b60a5f661def”。在数据重复提 交的场景里,当用户通过客户端向服务器发出了一个特定数据提交请求后,可 能会出现该特定数据提交请求被一些非法分子拦截并将与特定数据提交请求对 应的特定参数数据中每一个特定参数的顺序进行恶意更改的情形,而如果服务 器之前已经处理过该特定数据提交请求,但如果该特定参数数据中各特定参数 的顺序发生了改变,导致特定参数数据的特定签名值也发生了改变,那么数据 缓存列表中便不会存在与该特定签名值相同的签名值,故服务器会认为这是用 户发出的新的数据提交请求并会对上述特定数据提交请求执行对应的响应,从 而导致了该特定数据提交请求的重复提交。在本实施例,在获取了与数据提交 请求对应的参数数据后,首先会对参数数据中的身份标识参数的第一参数名称 与所述业务请求参数的第二参数名称按首字母的自然顺序进行排序,并根据该 排序来对身份标识参数与业务请求参数进行组合得到组合的参数数据,之后再 计算该组合的指定参数数据的组合签名值,最后判断数据缓存列表内是否存在与该组合签名值相同的签名值来判断该指定数据提交请求是否为重复提交,从 而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡 改后被服务器误认为是新的数据提交请求的情况,提高了服务器对重复的数据 提交请求进行处理的智能性和准确性。
进一步地,本申请一实施例中,上述步骤S6,包括:
S600:若所述匹配结果为所述组合签名值与所述预存储的签名值不相同, 则对所述数据提交请求进行处理得到对应的第一响应结果;
S601:将所述第一响应数据发送至所述客户端;
S602:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则 限制对所述数据提交请求进行响应。
如上述步骤S600至S602所述,上述匹配结果包括上述组合签名值与数据 缓存列表内的预存储的签名值相同或所述组合签名值与数据缓存列表内的预存 储的签名值不相同。在对上述参数数据进行签名处理并生成对应的组合签名值 后,通过将该组合签名值与数据缓存列表内预存储的签名值进行匹配,即判断 数据缓存列表内预存储的签名值是否与上述组合签名值相同,如果上述组合签 名值与预存储的签名值不相同,则表明该数据提交请求为一个新的数据提交请 求,之后服务器对该数据提交请求进行处理,即执行提交上述参数数据的提交 动作并得到对应的响应数据,再将该响应数据返回给客户端。但如果上述组合 签名值与预存储的签名值相同,则说明由客户端发出的上述数据提交请求在之 前已经有提交的记录,即上述数据提交请求属于一个重复提交的请求,则服务 器会限制对该数据提交请求进行响应。在本实施例,在接收到用户通过客户端 发送的数据提交请求时,首先对与该数据提交请求对应的参数数据按照首字母 的自然顺序进行排序得到组合的参数数据,然后对该组合的参数数据进行签名 得到组合签名值,并通过将该组合签名值与数据缓存列表内的预存储的签名值 进行匹配来判断该数据提交请求是否已经被提交,若已提交,即组合签名值与 预存储的签名值相同,则会拒绝对该数据提交请求进行响应,从而有利于避免 出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡改后被服务器 误认为是新的数据提交请求的情况,有效地防止了数据请求出现重复提交的问 题,提高了数据提交的效率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述步骤S6,包括:
S610:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则 判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;
S611:若不小于预设的第一失效时间,将所述组合签名值更新进所述数据 缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据,并将所 述第二响应数据发送至所述客户端;
S612:若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
如上述步骤S610至S612所述,上述数据提交请求的处理方法除了要对数 据缓存列表中是否存在与上述组合签名值相同的签名值进行判断之外,还需要 进一步判断上述预存储的签名值的存在时间是否大于预设的第一失效时间,如 果数据缓存列表中的预存储的签名值与上述组合签名值相同,且该预存储的签 名值的存在时间小于预设的第一失效时间,则判定该客户端提交的数据提交请 求在之前已提交过了,之后服务器会限制对数据提交请求进行响应。而如果数 据缓存列表中的预存储的签名值与上述组合签名值相同,但该预存储的签名值 的存在时间大于预设的第一失效时间,则判定该数据提交请求对应的参数数据 不是重复的数据,即该数据提交请求不是重复提交的请求,因此服务器会将该组合签名值更新进上述数据缓存列表中,并会对该数据提交请求进行处理,即 执行提交参数数据的提交动作并得到对应的第二响应数据,再将该第二响应数 据返回给客户端。其中,上述第一失效时间可根据用户输入的重复提交时间进 行设定,上述重复提交时间与上述第一失效时间等同。另外,通过对数据缓存 列表内的预存储的签名值设置一个第一失效时间来表示数据缓存列表内的预存 储的签名值在该第一失效时间内是有效的,例如第一失效时间可设为2s,则预 存储的签名值的存在时间在2s之内是有效的,而如果预存储的签名值的存在时 间已经超过2s,例如存在时间为5s,则判定该预存储的签名值是无效的,因此 可将当前的数据提交请求对应的参数数据判定为不是重复的数据,即可将当前 的数据提交请求视为新的数据提交请求,并将上述组合签名值更新进数据缓存 列表,以完成对已失效的预存储的签名值的替换,以及对该数据提交请求进行 处理得到第二响应数据,并向用户返回该第二响应数据。而如果存在时间为1s, 则定该预存储的签名值是有效的,则会判定该客户端提交的数据提交请求在此 之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交 请求对应的参数数据是重复的数据,则服务器会限制对所述数据提交请求进行 响应。本实施例通过对数据缓存列表中的预存储的签名值设定失效时间,只有 在该失效时间之内查询到的预存储的签名值才能作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,还解决了防止服务器的拓展性差的问题, 有效地提高了对数据的处理效率。
进一步地,本申请一实施例中,上述步骤S6,包括:
S620:若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则 判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;
S621:若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的 提交次数是否小于预设的重复提交次数;
S622:若小于预设的重复提交次数,将所述预存储的提交次数的数值替换 为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据 提交请求进行处理得到对应的第三响应数据;
S623:将所述第三响应数据发送至所述客户端;
S624:若不小于预设的重复提交次数,则限制对所述数据提交请求进行响 应。
如上述步骤S620至S624所述,上述预设的重复提交次数为在上述失效时 间内允许相同的数据提交请求出现的次数,举例地,上述重复提交次数可设为2 次,上述第二失效时间设为5s,则相同的数据提交请求在预存储签名值有效的 5s时间内允许出现2次,即如果在预存储签名值有效的5s时间内如果出现了两 次相同的数据提交请求,则服务器会执行与该两次相同的数据提交请求对应的 两次数据响应处理,但如果在预存储签名值有效的5s时间内如果出现了四次相 同的数据提交请求,服务器也只会执行前两次接收到的指定数据请求对应的两 次数据响应处理,而将后两次接收到指定数据请求视作重复的数据提交请求, 并且不会作出响应。在本实施例,上述防重复提交方法除了要对上述预存储的签名值的存在时间是否小于预设的第二失效时间进行判断之外,还要进一步判 断数据缓存列表内预存储的提交次数是否小于预设的重复提交次数,如果上述 预存储签名值的存在时间小于预设的失效时间,但数据缓存列表内的预存储的 提交次数小于预设的重复提交次数,则判定该数据提交请求对应的参数数据不 是重复的数据,因此服务器会对该数据提交请求进行处理,即执行提交参数数 据的提交动作并得到对应的第三响应数据,再将该第三响应数据返回给客户端, 并且将上述预存储的提交次数的数值替换为该预存储的提交次数加1并更新进 数据缓存列表中。而如果数据缓存列表内的预存储的提交次数不小于预设的重 复提交次数,则判定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是 重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例在对数 据缓存列表中的预存储的签名值设定失效时间的基础上,进一步对数据缓存列 表中的预存储的提交次数设置重复提交次数,当在该失效时间之内查询到的预 存储的签名值后,需要进一步来确定据缓存列表中的预存储的提交次数与预设 的重复提交次数的关系来作为重复提交的判断依据,不仅有效地防止了数据出 现重复提交,并且有效的解决了服务器的拓展性差的问题,提高了服务器的拓 展性已经服务器对数据的处理效率。
进一步地,上述步骤S620之前,包括:
S6200:创建动态修改所述第二失效时间的第一修改接口;
S6201:创建动态修改所述重复提交次数的第二修改接口。
本实施例中,上述第二失效时间以及上述重复提交次数可根据实际情况进 行调整,可创建一个动态修改所述第二失效时间的第一修改接口,以便通过该 第一修改接口对该第二失效时间对应的数据进行随意调整,以满足业务多变的 需求,另外,可创建一个动态修改所述重复提交次数的第二修改接口,以便通 过该第一修改接口对该重复提交次数对应的数据进行随意调整,进一步满足业 务多变的需求。在本实施例,通过创建可对第二失效时间以及重复提交时间进 行数据修改的两个接口,有利于实现自定义配置第二失效时间以及重复提交时 间的具体数值,并且能满足业务多多样化的需求,提高用户的使用体验。
参照图2,本申请一实施例中还提供了一种数据提交请求的处理装置,包括:
第一接收模块,用于通过指定接口接收客户端发送的数据提交请求;
第一获取模块,用于获取与所述数据提交请求对应的参数数据;
排序模块,用于对所述参数数据按照首字母的自然顺序进行排序,并依照 所述排序的顺序进行组合,得到组合的参数数据;
签名模块,用于对所述组合的参数数据进行签名处理,生成组合签名值;
匹配模块,用于将所述组合签名值与数据缓存列表内预存储的签名值进行 匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表 内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述 组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签 名值不相同;
处理模块,用于根据所述匹配结果,按照预设规则对所述数据提交请求进 行处理。
在上述第一接收模块、第一获取模块以及排序模块中,本实施例的执行主 体为数据提交请求的处理装置,具体可为服务器。上述指定接口是具有防重复 提交功能的接口,即配置有防重复代码的接口,例如该指定接口可不包括查询 接口或页面接口,上述指定接口可根据开发人员输入的接口信息进行确定。服 务器在通过上述指定接口接收到客户端发送过来的数据提交请求后,可从该数 据请求中获取客户端的地址信息,从而根据该地址信息定位到对应的该客户端, 然后从该客户端中下载得到与该数据提交请求对应的参数数据,其中该参数数 据包括身份标识参数与业务请求参数,该参数数据可为一串字符串的形式,举 例地,具体的字符串的形式可为“第一参数名称+第一参数数值/第二参数名称+第二参数数值/……”。在获得了上述参数数据后,可通过将该参数数据中的身份 标识参数与业务请求参数按照首字母的自然顺序进行排序,并依照该排序的顺 序进行组合得到上述组合的参数数据,其中上述首字母的自然顺序是指英文字 母自然的排列顺序,即ABCD…MNOP…WXYZ。
在上述签名模块、匹配模块以及处理模块中,在得到上述组合的参数数据 后,通过对该组合的参数数据进行签名处理,可得到对应的组合签名值,其中 上述组合签名值可为数字、字符串或者数字与字符串的结合。另外,可采用签 名运算算法对该组合的指定参数数据进行签名处理,对该签名运算算法不作限 定,只需要通过该签名运算算法使得计算得到的组合签名值是唯一的且不可逆 的即可。具体地,上述签名运算算法可采用哈希运算算法,根据哈希运算算法 对上述组合的参数数据进行哈希运算,便可得到对应的组合哈希值,即上述的 组合签名值。然后将组合签名值与数据缓存列表内预存储的签名值进行匹配, 得到匹配结果。之后根据上述匹配结果,可按照预设规则对该数据提交请求进 行对应的处理。其中,上述数据缓存列表内包含有预存储的签名值,且上述预 存储的签名值为数据缓存列表内存储的与历史数据提交请求对应的历史组合签 名值,该预存储的签名值为由对应的历史数据提交请求对应的历史参数数据经 过首字母的自然顺序排序的处理后再进行签名处理后得到的。上述对该数据提 交请求进行对应的处理的具体内容包括对该数据提交请求进行处理得到对应的 处理结果或者限制对该数据提交请求进行响应。在本实施例,当通过指定接口 接收到客户端发送的数据提交请求时,首先对与该数据提交请求对应的参数数 据按照首字母的自然顺序进行排序并依照该排序的顺序进行组合得到组合的参 数数据,然后对该组合的参数数据进行签名得到组合签名值,之后将该组合签 名值与数据缓存列表内预存储的签名值进行匹配来得到匹配结果,并根据该匹 配结果来对数据提交请求进行对应的处理,若该数据提交请求为重复提交的请 求,则会限制对该数据提交请求进行响应,从而有利于避免出现重复提交的数 据提交请求由于参数数据中各参数的顺序被篡改后却被服务器误认为是新的数 据提交请求的情况,有效地防止了数据出现重复提交的问题,保证了服务器的 业务的正常开展,提高了数据提交请求的处理效率,也提高了服务器对数据提 交请求处理的准确率。
进一步地,本申请一实施例中,上述数据提交请求的处理装置,包括:
第二获取模块,用于根据开发人员输入的指定接口信息,获取与所述指定 接口信息对应的所述指定接口;
第二接收模块,用于接收所述开发人员输入的防重复提交代码;
第一创建模块,用于创建包含所述防重复提交代码的功能模块;
控制模块,用于控制所述指定接口调用所述功能模块。
本实施例中,服务器会根据开发人员输入的指定接口信息,来获取得到与 上述指定接口信息对应的上述指定接口,并进一步来为与该指定接口信息相对 应的指定接口设置防重复提交功能,以实现自定义配置需要防重复提交的指定 接口。具体地,在接收到开发人员输入的防重复提交代码后,可创建出包含该 防重复提交代码的功能模块,然后从内部查找出与上述开发人员输入的指定接 口信息对应的指定接口url(Uniform ResourceLocator,统一资源定位符),最后 控制该指定接口url实现对上述功能模块的调用,从而实现根据开发人员的使用 意图来配置需要防重复提交的指定接口,而对一些客户不经常使用的查询接口 或页面接口不设置防重复提交功能,能有效地降低服务器系统的资源消耗,也 能有效地提高客户的使用体验。进一步地,在实际应用上,还可以将上述包含 防重复提交代码的功能模块外挂到其它的使用场景,例如负载均衡器或者流量 控制分发器,等等,以实现该功能模块的防重复提交在多种使用场景的广泛应 用。
进一步地,本申请一实施例中,上述第一获取模块,包括:
调用单元,用于调用预设的拦截器对所述数据提交请求进行拦截;
第一获取单元,用于拦截成功后,根据所述数据提交请求获取所述客户端 的地址信息;
第二获取单元,用于根据所述地址信息,从所述客户端获取与所述数据提 交请求对应的所述参数数据。
本实施例中,预先创建一个具有拦截请求功能的过滤器,当接收到客户端 发出的数据提交请求后,为了避免出现请求重复提交导致重复的数据提交请求 触发了多个相同的业务处理逻辑的情况,即服务器对多个相同的数据提交请求 执行了对应的多个业务逻辑处理的情况,本实施例的服务器不会立即对上述数 据提交请求进行响应来得到对应的响应结果,并向客户端返回该响应结果,而 服务器首先会调用预先创建的上述拦截器来对该数据提交请求进行拦截,并在 拦截成功后从该数据提交请求提取出客户端的地址信息,之后再根据客户端的 地址信息从客户端内下载与该数据提交请求对应的上述参数数据,以便在确定 该数据提交请求是否满足重复提交的条件之后,进一步对该参数数据进行后续 的相应处理。通过对接收到的数据请求进行拦截并判断该数据提交请求是否属 于数据请求的重复提交,有利于避免重复的数据请求触发多次相同的业务处理 逻辑,有效地保证了服务器业务处理的严密性以及服务器的安全可靠性。
进一步地,本申请一实施例中,上述排序模块,包括:
提取单元,用于提取所述身份标识参数的第一参数名称与所述业务请求参 数的第二参数名称;
排序单元,用于将所述第一参数名称与所述第二参数名称按照首字母的自 然顺序进行排序;
组合单元,用于根据所述排序对所述身份标识参数与所述业务请求参数进 行组合,得到所述组合的参数数据。
本实施例中,上述的参数数据包括身份标识参数与业务请求参数,上述身 份标识参数包括身份标识参数名称sessionId,ip以及对应的身份标识参数数值, 该身份标识参数能够指代发起该数据请求的客户端的地址与身份,例如上述身 份标识参数包括“sessionId=95d5d86f-bafa-474a-b457-b60a5f661def”以及 “ip=183.14.135.240”。上述业务请求参数对应用户需要办理的业务,包含用户 需要办理的业务情况,假如用户需要为张三充值10元的业务请求可表示为: “name=zhangsan/charge=10”。上述对参数数据按照首字母的自然顺序进行排序, 得到组合的参数数据的过程具体为:提取出上述身份标识参数的第一参数名称 与业务请求参数的第二参数名称,然后将上述第一参数名称与第二参数名称按 照首字母的自然顺序进行排序,再根据上述排序对身份标识参数与所述业务请 求参数进行组合来得到所述组合后的上述指定参数数据。举例地,结合上述的 例子,按照对用户输入的数据提交请求对应的参数数据进行按照首字母的自然 顺序排序的处理后,得到的组合的参数数据为:“charge=10/ip=183.14.135.240/ name=zhangsan/sessionId=95d5d86f-bafa-474a-b457-b60a5f661def”。在数据重复提 交的场景里,当用户通过客户端向服务器发出了一个特定数据提交请求后,可 能会出现该特定数据提交请求被一些非法分子拦截并将与特定数据提交请求对 应的特定参数数据中每一个特定参数的顺序进行恶意更改的情形,而如果服务 器之前已经处理过该特定数据提交请求,但如果该特定参数数据中各特定参数 的顺序发生了改变,导致特定参数数据的特定签名值也发生了改变,那么数据 缓存列表中便不会存在与该特定签名值相同的签名值,故服务器会认为这是用 户发出的新的数据提交请求并会对上述特定数据提交请求执行对应的响应,从而导致了该特定数据提交请求的重复提交。在本实施例,在获取了与数据提交 请求对应的参数数据后,首先会对参数数据中的身份标识参数的第一参数名称 与所述业务请求参数的第二参数名称按首字母的自然顺序进行排序,并根据该 排序来对身份标识参数与业务请求参数进行组合得到组合的参数数据,之后再 计算该组合的指定参数数据的组合签名值,最后判断数据缓存列表内是否存在 与该组合签名值相同的签名值来判断该指定数据提交请求是否为重复提交,从 而有利于避免出现重复提交的数据提交请求由于参数数据中各参数的顺序被篡 改后被服务器误认为是新的数据提交请求的情况,提高了服务器对重复的数据 提交请求进行处理的智能性和准确性。
进一步地,本申请一实施例中,上述处理模块,包括:
第一处理单元,用于若所述匹配结果为所述组合签名值与所述预存储的签 名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将 所述第一响应数据发送至所述客户端;
第一限制单元,用于若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则限制对所述数据提交请求进行响应。
本实施例中,上述匹配结果包括上述组合签名值与数据缓存列表内的预存 储的签名值相同或所述组合签名值与数据缓存列表内的预存储的签名值不相同。 在对上述参数数据进行签名处理并生成对应的组合签名值后,通过将该组合签 名值与数据缓存列表内预存储的签名值进行匹配,即判断数据缓存列表内预存 储的签名值是否与上述组合签名值相同,如果上述组合签名值与预存储的签名 值不相同,则表明该数据提交请求为一个新的数据提交请求,之后服务器对该 数据提交请求进行处理,即执行提交上述参数数据的提交动作并得到对应的响 应数据,再将该响应数据返回给客户端。但如果上述组合签名值与预存储的签 名值相同,则说明由客户端发出的上述数据提交请求在之前已经有提交的记录, 即上述数据提交请求属于一个重复提交的请求,则服务器会限制对该数据提交 请求进行响应。在本实施例,在接收到用户通过客户端发送的数据提交请求时, 首先对与该数据提交请求对应的参数数据按照首字母的自然顺序进行排序得到 组合的参数数据,然后对该组合的参数数据进行签名得到组合签名值,并通过 将该组合签名值与数据缓存列表内的预存储的签名值进行匹配来判断该数据提 交请求是否已经被提交,若已提交,即组合签名值与预存储的签名值相同,则 会拒绝对该数据提交请求进行响应,从而有利于避免出现重复提交的数据提交 请求由于参数数据中各参数的顺序被篡改后被服务器误认为是新的数据提交请 求的情况,有效地防止了数据请求出现重复提交的问题,提高了数据提交的效 率,也提高了服务器对数据提交请求处理的准确率。
进一步地,本申请一实施例中,上述处理模块,包括:
第一判断单元,用于若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时 间;
第二处理单元,用于若不小于预设的第一失效时间,将所述组合签名值更 新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响 应数据;
第一发送单元,用于将所述第二响应数据发送至所述客户端;
第二限制单元,用于若小于预设的第一失效时间,则限制对所述数据提交 请求进行响应。
本实施例中,上述数据提交请求的处理方法除了要对数据缓存列表中是否 存在与上述组合签名值相同的签名值进行判断之外,还需要进一步判断上述预 存储的签名值的存在时间是否大于预设的第一失效时间,如果数据缓存列表中 的预存储的签名值与上述组合签名值相同,且该预存储的签名值的存在时间小 于预设的第一失效时间,则判定该客户端提交的数据提交请求在之前已提交过 了,之后服务器会限制对数据提交请求进行响应。而如果数据缓存列表中的预 存储的签名值与上述组合签名值相同,但该预存储的签名值的存在时间大于预 设的第一失效时间,则判定该数据提交请求对应的参数数据不是重复的数据, 即该数据提交请求不是重复提交的请求,因此服务器会将该组合签名值更新进 上述数据缓存列表中,并会对该数据提交请求进行处理,即执行提交参数数据 的提交动作并得到对应的第二响应数据,再将该第二响应数据返回给客户端。 其中,上述第一失效时间可根据用户输入的重复提交时间进行设定,上述重复 提交时间与上述第一失效时间等同。另外,通过对数据缓存列表内的预存储的 签名值设置一个第一失效时间来表示数据缓存列表内的预存储的签名值在该第 一失效时间内是有效的,例如第一失效时间可设为2s,则预存储的签名值的存 在时间在2s之内是有效的,而如果预存储的签名值的存在时间已经超过2s,例 如存在时间为5s,则判定该预存储的签名值是无效的,因此可将当前的数据提 交请求对应的参数数据判定为不是重复的数据,即可将当前的数据提交请求视 为新的数据提交请求,并将上述组合签名值更新进数据缓存列表,以完成对已 失效的预存储的签名值的替换,以及对该数据提交请求进行处理得到第二响应 数据,并向用户返回该第二响应数据。而如果存在时间为1s,则定该预存储的 签名值是有效的,则会判定该客户端提交的数据提交请求在此之前已提交过了, 即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数 据是重复的数据,则服务器会限制对所述数据提交请求进行响应。本实施例通 过对数据缓存列表中的预存储的签名值设定失效时间,只有在该失效时间之内 查询到的预存储的签名值才能作为重复提交的判断依据,不仅有效地防止了数 据出现重复提交,还解决了防止服务器的拓展性差的问题,有效地提高了对数 据的处理效率。
进一步地,本申请一实施例中,上述处理模块,包括:
第二判断单元,用于若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时 间;
第三判断单元,用于若小于预设的第二失效时间,则判断所述数据缓存列 表内预存储的提交次数是否小于预设的重复提交次数;
第三处理单元,用于若小于预设的重复提交次数,将所述预存储的提交次 数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中, 并对所述数据提交请求进行处理得到对应的第三响应数据;
第二发送单元,用于将所述第三响应数据发送至所述客户端;
第三限制单元,用于若不小于预设的重复提交次数,则限制对所述数据提 交请求进行响应。
本实施例中,上述预设的重复提交次数为在上述失效时间内允许相同的数 据提交请求出现的次数,举例地,上述重复提交次数可设为2次,上述第二失 效时间设为5s,则相同的数据提交请求在预存储签名值有效的5s时间内允许出 现2次,即如果在预存储签名值有效的5s时间内如果出现了两次相同的数据提 交请求,则服务器会执行与该两次相同的数据提交请求对应的两次数据响应处 理,但如果在预存储签名值有效的5s时间内如果出现了四次相同的数据提交请 求,服务器也只会执行前两次接收到的指定数据请求对应的两次数据响应处理, 而将后两次接收到指定数据请求视作重复的数据提交请求,并且不会作出响应。 在本实施例,上述防重复提交方法除了要对上述预存储的签名值的存在时间是 否小于预设的第二失效时间进行判断之外,还要进一步判断数据缓存列表内预 存储的提交次数是否小于预设的重复提交次数,如果上述预存储签名值的存在 时间小于预设的失效时间,但数据缓存列表内的预存储的提交次数小于预设的 重复提交次数,则判定该数据提交请求对应的参数数据不是重复的数据,因此 服务器会对该数据提交请求进行处理,即执行提交参数数据的提交动作并得到 对应的第三响应数据,再将该第三响应数据返回给客户端,并且将上述预存储 的提交次数的数值替换为该预存储的提交次数加1并更新进数据缓存列表中。 而如果数据缓存列表内的预存储的提交次数不小于预设的重复提交次数,则判 定该客户端提交的数据提交请求在此之前已提交过了,即当前的数据提交请求满足重复提交的条件,且该数据提交请求对应的参数数据是重复的数据,则服 务器会限制对所述数据提交请求进行响应。本实施例在对数据缓存列表中的预 存储的签名值设定失效时间的基础上,进一步对数据缓存列表中的预存储的提 交次数设置重复提交次数,当在该失效时间之内查询到的预存储的签名值后, 需要进一步来确定据缓存列表中的预存储的提交次数与预设的重复提交次数的 关系来作为重复提交的判断依据,不仅有效地防止了数据出现重复提交,并且 有效的解决了服务器的拓展性差的问题,提高了服务器的拓展性已经服务器对 数据的处理效率。
进一步地,本申请一实施例中,上述数据提交请求的处理装置,包括:
第二创建模块,用于创建动态修改所述第二失效时间的第一修改接口;
第三创建模块,用于创建动态修改所述重复提交次数的第二修改接口。
在上述第二创建模块和第三创建模块中,上述第二失效时间以及上述重复 提交次数可根据实际情况进行调整,可创建一个动态修改所述第二失效时间的 第一修改接口,以便通过该第一修改接口对该第二失效时间对应的数据进行随 意调整,以满足业务多变的需求,另外,可创建一个动态修改所述重复提交次 数的第二修改接口,以便通过该第一修改接口对该重复提交次数对应的数据进 行随意调整,进一步满足业务多变的需求。在本实施例,通过创建可对第二失 效时间以及重复提交时间进行数据修改的两个接口,有利于实现自定义配置第 二失效时间以及重复提交时间的具体数值,并且能满足业务多多样化的需求, 提高用户的使用体验。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服 务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处 理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提 供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。 该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非 易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的 数据库用于存储数据提交请求与预存储的签名值等数据。该计算机设备的网络 接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实 现一种数据提交请求的处理方法。
上述处理器执行上述数据提交请求的处理方法的步骤:通过指定接口接收 客户端发送的数据提交请求;获取与所述数据提交请求对应的参数数据;对所 述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合, 得到组合的参数数据;对所述组合的参数数据进行签名处理,生成组合签名值; 将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹 配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据 提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预 存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;根据所 述匹配结果,按照预设规则对所述数据提交请求进行处理。
在一实施例,所述通过指定接口接收客户端发送的数据提交请求的步骤之 前,包括:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应 的所述指定接口;接收所述开发人员输入的防重复提交代码;创建包含所述防 重复提交代码的功能模块;控制所述指定接口调用所述功能模块。
在一实施例,所述获取与所述数据提交请求对应的参数数据的步骤,包括: 调用预设的拦截器对所述数据提交请求进行拦截;拦截成功后,根据所述数据 提交请求获取所述客户端的地址信息;根据所述地址信息,从所述客户端获取 与所述数据提交请求对应的所述参数数据。
在一实施例,所述参数数据包括身份标识参数与业务请求参数,所述对所 述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合, 得到组合的参数数据的步骤,包括:提取所述身份标识参数的第一参数名称与 所述业务请求参数的第二参数名称;将所述第一参数名称与所述第二参数名称 按照首字母的自然顺序进行排序;根据所述排序对所述身份标识参数与所述业 务请求参数进行组合,得到所述组合的参数数据。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将 所述第一响应数据发送至所述客户端;若所述匹配结果为所述组合签名值与所 述预存储的签名值相同,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时 间;若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列 表中,并对所述数据提交请求进行处理得到对应的第二响应数据;将所述第二 响应数据发送至所述客户端;若小于预设的第一失效时间,则限制对所述数据 提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时 间;若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次 数是否小于预设的重复提交次数;若小于预设的重复提交次数,将所述预存储 的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存 列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;将所述第 三响应数据发送至所述客户端;若不小于预设的重复提交次数,则限制对所述 数据提交请求进行响应。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关 的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备 的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序, 计算机程序被处理器执行时实现一种数据提交请求的处理方法,具体为:通过 指定接口接收客户端发送的数据提交请求;获取与所述数据提交请求对应的参 数数据;对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的 顺序进行组合,得到组合的参数数据;对所述组合的参数数据进行签名处理, 生成组合签名值;将所述组合签名值与数据缓存列表内预存储的签名值进行匹 配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内 存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组 合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名 值不相同;根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
在一实施例,所述通过指定接口接收客户端发送的数据提交请求的步骤之 前,包括:根据开发人员输入的指定接口信息,获取与所述指定接口信息对应 的所述指定接口;接收所述开发人员输入的防重复提交代码;创建包含所述防 重复提交代码的功能模块;控制所述指定接口调用所述功能模块。
在一实施例,所述获取与所述数据提交请求对应的参数数据的步骤,包括: 调用预设的拦截器对所述数据提交请求进行拦截;拦截成功后,根据所述数据 提交请求获取所述客户端的地址信息;根据所述地址信息,从所述客户端获取 与所述数据提交请求对应的所述参数数据。
在一实施例,所述参数数据包括身份标识参数与业务请求参数,所述对所 述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合, 得到组合的参数数据的步骤,包括:提取所述身份标识参数的第一参数名称与 所述业务请求参数的第二参数名称;将所述第一参数名称与所述第二参数名称 按照首字母的自然顺序进行排序;根据所述排序对所述身份标识参数与所述业 务请求参数进行组合,得到所述组合的参数数据。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将 所述第一响应数据发送至所述客户端;若所述匹配结果为所述组合签名值与所 述预存储的签名值相同,则限制对所述数据提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时 间;若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列 表中,并对所述数据提交请求进行处理得到对应的第二响应数据;将所述第二 响应数据发送至所述客户端;若小于预设的第一失效时间,则限制对所述数据 提交请求进行响应。
在一实施例,所述根据所述匹配结果,按照预设规则对所述数据提交请求 进行处理的步骤,包括:若所述匹配结果为所述组合签名值与所述预存储的签 名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时 间;若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次 数是否小于预设的重复提交次数;若小于预设的重复提交次数,将所述预存储 的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存 列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;将所述第 三响应数据发送至所述客户端;若不小于预设的重复提交次数,则限制对所述 数据提交请求进行响应。
综上所述,本申请实施例中提供的数据提交请求的处理方法、装置和计算 机设备,通过指定接口接收客户端发送的数据提交请求;获取与所述数据提交 请求对应的参数数据;对所述参数数据按照首字母的自然顺序进行排序,并依 照所述排序的顺序进行组合,得到组合的参数数据;对所述组合的参数数据进 行签名处理,生成组合签名值;将所述组合签名值与数据缓存列表内预存储的 签名值进行匹配,得到对应的匹配结果;根据所述匹配结果,按照预设规则对 所述数据提交请求进行处理。通过本申请能有效地防止了数据出现重复提交的 问题,保证了服务器的业务的正常开展,提高了数据提交请求的处理效率,也 提高了服务器对数据提交请求处理的准确率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与 一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述 各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、 存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。 非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编 程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储 器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局 限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、 同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM (ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus) 直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器 总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不 仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种 过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包 括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法 中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡 是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间 接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种数据提交请求的处理方法,其特征在于,包括:
通过指定接口接收客户端发送的数据提交请求;
获取与所述数据提交请求对应的参数数据;
对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
对所述组合的参数数据进行签名处理,生成组合签名值;
将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
2.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述通过指定接口接收客户端发送的数据提交请求的步骤之前,包括:
根据开发人员输入的指定接口信息,获取与所述指定接口信息对应的所述指定接口;
接收所述开发人员输入的防重复提交代码;
创建包含所述防重复提交代码的功能模块;
控制所述指定接口调用所述功能模块。
3.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述获取与所述数据提交请求对应的参数数据的步骤,包括:
调用预设的拦截器对所述数据提交请求进行拦截;
拦截成功后,根据所述数据提交请求获取所述客户端的地址信息;
根据所述地址信息,从所述客户端获取与所述数据提交请求对应的所述参数数据。
4.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述参数数据包括身份标识参数与业务请求参数,所述对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据的步骤,包括:
提取所述身份标识参数的第一参数名称与所述业务请求参数的第二参数名称;
将所述第一参数名称与所述第二参数名称按照首字母的自然顺序进行排序;
根据所述排序对所述身份标识参数与所述业务请求参数进行组合,得到所述组合的参数数据。
5.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值不相同,则对所述数据提交请求进行处理得到对应的第一响应结果,并将所述第一响应数据发送至所述客户端;
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则限制对所述数据提交请求进行响应。
6.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第一失效时间;
若不小于预设的第一失效时间,将所述组合签名值更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第二响应数据;
将所述第二响应数据发送至所述客户端;
若小于预设的第一失效时间,则限制对所述数据提交请求进行响应。
7.根据权利要求1所述的数据提交请求的处理方法,其特征在于,所述根据所述匹配结果,按照预设规则对所述数据提交请求进行处理的步骤,包括:
若所述匹配结果为所述组合签名值与所述预存储的签名值相同,则判断所述预存储的签名值的存在时间是否小于预设的第二失效时间;
若小于预设的第二失效时间,则判断所述数据缓存列表内预存储的提交次数是否小于预设的重复提交次数;
若小于预设的重复提交次数,将所述预存储的提交次数的数值替换为所述预存储的提交次数的值+1并更新进所述数据缓存列表中,并对所述数据提交请求进行处理得到对应的第三响应数据;
将所述第三响应数据发送至所述客户端;
若不小于预设的重复提交次数,则限制对所述数据提交请求进行响应。
8.一种数据提交请求的处理装置,其特征在于,包括:
第一接收模块,用于通过指定接口接收客户端发送的数据提交请求;
第一获取模块,用于获取与所述数据提交请求对应的参数数据;
排序模块,用于对所述参数数据按照首字母的自然顺序进行排序,并依照所述排序的顺序进行组合,得到组合的参数数据;
签名模块,用于对所述组合的参数数据进行签名处理,生成组合签名值;
匹配模块,用于将所述组合签名值与数据缓存列表内预存储的签名值进行匹配,得到对应的匹配结果,其中,所述预存储的签名值为所述数据缓存列表内存储的与历史数据提交请求对应的历史组合签名值,所述匹配结果包括所述组合签名值与所述预存储的签名值相同、或所述组合签名值与所述预存储的签名值不相同;
处理模块,用于根据所述匹配结果,按照预设规则对所述数据提交请求进行处理。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910395310.0A 2019-05-13 2019-05-13 数据提交请求的处理方法、装置和计算机设备 Pending CN110221925A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910395310.0A CN110221925A (zh) 2019-05-13 2019-05-13 数据提交请求的处理方法、装置和计算机设备
PCT/CN2019/119219 WO2020228292A1 (zh) 2019-05-13 2019-11-18 数据提交请求的处理方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910395310.0A CN110221925A (zh) 2019-05-13 2019-05-13 数据提交请求的处理方法、装置和计算机设备

Publications (1)

Publication Number Publication Date
CN110221925A true CN110221925A (zh) 2019-09-10

Family

ID=67820928

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910395310.0A Pending CN110221925A (zh) 2019-05-13 2019-05-13 数据提交请求的处理方法、装置和计算机设备

Country Status (2)

Country Link
CN (1) CN110221925A (zh)
WO (1) WO2020228292A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110661863A (zh) * 2019-09-20 2020-01-07 政采云有限公司 一种请求处理方法、装置及电子设备和存储介质
CN110839085A (zh) * 2019-11-20 2020-02-25 珠海格力电器股份有限公司 指令管理方法、装置、电子设备及存储介质
CN111371852A (zh) * 2020-02-24 2020-07-03 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置
CN111756749A (zh) * 2020-06-24 2020-10-09 中国建设银行股份有限公司 安全访问方法、装置、设备及存储介质
WO2020228292A1 (zh) * 2019-05-13 2020-11-19 平安科技(深圳)有限公司 数据提交请求的处理方法、装置和计算机设备
CN112528307A (zh) * 2020-12-18 2021-03-19 平安银行股份有限公司 服务请求校验方法、装置、电子设备及存储介质
CN113220778A (zh) * 2021-04-07 2021-08-06 中国电子科技集团公司第十五研究所 一种数据同步方法、装置及可读存储介质
CN116132534A (zh) * 2022-07-01 2023-05-16 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107562555A (zh) * 2017-08-02 2018-01-09 网宿科技股份有限公司 重复数据的清洗方法及服务器
WO2018153288A1 (zh) * 2017-02-22 2018-08-30 腾讯科技(深圳)有限公司 数值转移方法、装置、设备及存储介质
CN109005038A (zh) * 2018-08-03 2018-12-14 北京达佳互联信息技术有限公司 签名方法、装置、电子设备及存储介质
CN109634756A (zh) * 2018-11-26 2019-04-16 平安科技(深圳)有限公司 页面事件处理方法、装置、计算机设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7857222B2 (en) * 2007-08-16 2010-12-28 Hand Held Products, Inc. Data collection system having EIR terminal interface node
CN108573741A (zh) * 2017-12-25 2018-09-25 北京金山云网络技术有限公司 业务数据记录方法、装置、设备和存储介质
CN109240838A (zh) * 2018-09-20 2019-01-18 深圳市牛鼎丰科技有限公司 接口调用方法、装置、计算机设备及存储介质
CN110221925A (zh) * 2019-05-13 2019-09-10 平安科技(深圳)有限公司 数据提交请求的处理方法、装置和计算机设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018153288A1 (zh) * 2017-02-22 2018-08-30 腾讯科技(深圳)有限公司 数值转移方法、装置、设备及存储介质
CN107562555A (zh) * 2017-08-02 2018-01-09 网宿科技股份有限公司 重复数据的清洗方法及服务器
CN109005038A (zh) * 2018-08-03 2018-12-14 北京达佳互联信息技术有限公司 签名方法、装置、电子设备及存储介质
CN109634756A (zh) * 2018-11-26 2019-04-16 平安科技(深圳)有限公司 页面事件处理方法、装置、计算机设备及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020228292A1 (zh) * 2019-05-13 2020-11-19 平安科技(深圳)有限公司 数据提交请求的处理方法、装置和计算机设备
CN110661863A (zh) * 2019-09-20 2020-01-07 政采云有限公司 一种请求处理方法、装置及电子设备和存储介质
CN110839085A (zh) * 2019-11-20 2020-02-25 珠海格力电器股份有限公司 指令管理方法、装置、电子设备及存储介质
CN111371852A (zh) * 2020-02-24 2020-07-03 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置
CN111371852B (zh) * 2020-02-24 2022-01-25 腾讯科技(深圳)有限公司 一种数据处理的方法以及相关装置
CN111756749A (zh) * 2020-06-24 2020-10-09 中国建设银行股份有限公司 安全访问方法、装置、设备及存储介质
CN112528307A (zh) * 2020-12-18 2021-03-19 平安银行股份有限公司 服务请求校验方法、装置、电子设备及存储介质
CN113220778A (zh) * 2021-04-07 2021-08-06 中国电子科技集团公司第十五研究所 一种数据同步方法、装置及可读存储介质
CN116132534A (zh) * 2022-07-01 2023-05-16 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质
CN116132534B (zh) * 2022-07-01 2024-03-08 马上消费金融股份有限公司 业务请求的存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2020228292A1 (zh) 2020-11-19

Similar Documents

Publication Publication Date Title
CN110221925A (zh) 数据提交请求的处理方法、装置和计算机设备
CN109165725A (zh) 基于迁移学习的神经网络联邦建模方法、设备及存储介质
CN100401707C (zh) 一种分布式控制系统中的远程过程调用方法及系统
CN103023875B (zh) 一种账户管理系统及方法
CN104580349B (zh) 安全云管理代理
CN109325584A (zh) 基于神经网络的联邦建模方法、设备及可读存储介质
CN108170740A (zh) 数据迁移方法、系统和计算机可读存储介质
CN109474668A (zh) Cdn服务切换方法、装置、计算机设备及存储介质
CN107220142A (zh) 执行数据恢复操作的方法及装置
CN102681888B (zh) 应用服务器管理系统、应用服务器管理方法、管理装置、应用服务器
US20160261575A1 (en) Executing an operation over file repositories located in different authentication domains using a representational state transfer (rest)-compliant client
CN110363026A (zh) 文件操作方法、装置、设备、系统及计算机可读存储介质
CN105471635B (zh) 一种系统日志的处理方法、装置和系统
CN109510758B (zh) 会话建立方法、终端及系统
CN104615662B (zh) 一种处理数据的方法、装置及终端设备
CN109347866A (zh) 登录方法、装置、系统和计算机可读存储介质
CN108959573A (zh) 基于桌面云的数据迁移方法、装置、电子设备以及存储介质
CN108268365A (zh) 异常任务注入方法、装置和系统
CN103281210B (zh) 网络设备的配置文件的版本管理系统
CN110020046A (zh) 一种数据抓取方法及装置
CN113010255A (zh) 基于捆绑会话组的交互方法、装置和计算机设备
CN109829821A (zh) 一种数字资产地址转移异常的处理方法、装置及系统
CN108289080A (zh) 一种访问文件系统的方法、装置和系统
CN112738007B (zh) 管理权限转让同步更新方法、装置和计算机可读存储介质
CN106875175B (zh) 一种便于支付主体扩展的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination