控制表单重复提交的方法、装置及系统与流程

文档序号:11830030阅读:222来源:国知局
控制表单重复提交的方法、装置及系统与流程

本发明涉及互联网领域,具体而言,涉及一种控制表单重复提交的方法、装置及系统。



背景技术:

近年来,随着移动互联网的发展,生活工作中越来越多的事情可以借助互联网来完成。

在对后台管理系统的开发过程中,有些功能对数据一致性有很严格的要求。比如,在对通用凭证表单进行登帐、在多个帐号间通过表单进行转、退款业务操作、对注册表单进行提交、通过网络进行付款等操作时,虽然客户只对表单进行了一次表单提交操作,但有时因为网络延迟、客户多次点击提交按钮或者客户强行刷新表单页面等原因,服务器端却接收到两次以上相同的操作请求,造成了表单数据重复或者不一致。

其中,在一种现有的方案中,可以通过控制表单的提交按钮来实现防用户重复提交表单。具体的,可以在用户点击了提交表单的按钮后,通过控件(js控件)去掉与提交按钮对应的点击事件,使用户无法再次对其进行点击操作,以防止因用户重复点击提交按钮,造成的同一个表单多次提交操作。

虽然,可以通过上述去掉与提交按钮对应的点击事件的方法,来实现防止用户重复提交。但只是通过简单的控制提交表单的提交按钮,来防止重复提交的方式,并不能防止因为点击浏览器后退按钮,或者网络重发等原因造成的表单重复提交。

为了解决上述问题,现有技术提供了一种通过在表单数据包中放置记号帧(令牌token)的方法来防止对表单的重复提交。

具体的,在用户在访问表单页面的时候,服务器端会在给客户端返回表单数据包的同时,返回给一个记号帧(token),同时将这个帧值放在后端系统中的与该用户对应的全局域(session)中。用户在提交表单后,后端系统会比较表单中的记号帧(token)与全局域(session)是否相同。如果相同则表单提交成功,同时将全局域(session)中的该记号帧(token)值删除或生成新的记号帧(token)覆盖原来的记号帧(token);如果不同或全局域(session)中没有与该帧对应的记号帧(token)值,则表单提交 失败。

虽然,可以通过上述在表单数据包中放置记号帧(token),以防止表单的重复提交的方法,来实现防止用户重复提交。但是,如果在对同一个表单进行的两次提交请求几乎是同时发出来的时候,服务器端可以查询到与两个对应的记号帧(token),即在token没有删除或覆盖之前,两个提交请求可能都查到同一个记号token,从而造成两个同时发出的表单请求的表单数据都能提交成功,还是会造成表单的重复提交。

针对上述无法对同一个表单的重复提交进行有效地监控,导致提交的表单数据不唯一的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种控制表单重复提交的方法、装置及系统,以至少解决由于同一个表单的重复提交,导致提交的表单数据不唯一的技术问题。

根据本发明实施例的一个方面,提供了一种控制表单重复提交的方法,包括:接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

根据本发明实施例的另一方面,还提供了一种控制表单重复提交的装置,包括:处理模块,用于接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;返回模块,用于将访问表单请求对应的表单参数和索引数据返回至客户端;接收模块,用于接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;存储模块,用于保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

根据本发明实施例的另一方面,还提供了一种控制表单重复提交的方法,包括:发送访问表单请求至服务器;接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;发送至少两个表单数据包至服务器,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,服务器仅保存其中一 个表单数据包。

根据本发明实施例的另一方面,还提供了一种控制表单重复提交的装置,包括:第一发送模块,用于发送访问表单请求至服务器;第一接收模块,用于接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;第一生成模块,用于根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;第二发送模块,用于发送至少两个表单数据包至服务器,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,服务器仅保存其中一个表单数据包。

根据本发明实施例的另一方面,还提供了一种控制表单重复提交的系统,该系统包括:客户端,用于发送访问表单请求;服务器,与客户端建立通信,用于接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,在将访问表单请求对应的表单参数和索引数据返回至客户端之后,接收客户端返回的至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包;其中,客户端根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据,索引数据为访问表单请求的唯一标识。。

在本发明实施例中,采用接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包的方式,通过在发送与访问表单请求对应的表单参数的同时发送索引数据,客户端在返回表单数据包时同时将根据表单参数生成的表单和与与表单参数对应的索引数据返回服务器端,验证索引数据是否出现重复,来判断表单数据包是否重复,达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的目的,进而解决了由于同一个表单的重复提交,导致提交的表单数据不唯一的技术问题。从而实现了对表单提交过程的有效监控,并有效避免了表单重复提交。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据发明实施例的一种运行控制表单重复提交的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例一的控制表单重复提交的方法的流程图;

图3是根据本发明实施例的控制表单重复提交的方法的详细流程图;

图4是根据本发明实施例二的控制表单重复提交的装置的示意图;

图5是根据本发明实施例二优选的控制表单重复提交的装置中存储模块的示意图;

图6是根据本发明实施例二优选的控制表单重复提交的装置的示意图;

图7是根据本发明实施例二优选的控制表单重复提交的装置中处理模块的示意图;

图8是根据本发明实施例三的控制表单重复提交的方法的流程图;

图9是根据本发明实施例四的控制表单重复提交的装置的示意图;

图10是根据本发明实施例四优选的控制表单重复提交的装置的示意图;以及

图11是根据本发明实施例五的一种控制表单重复提交的系统的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种控制表单重复提交的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种控制表单重复提交的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的控制表单重复提交的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的控制表单重复提交的方法,本方法应用于服务器端。图2是根据本发明实施例一的控制表单重复提交的方法的流程图。

如图2所示,用于执行该表单重复提交的方法的计算机终端10可以是服务器,一种可选的方案包括如下实施步骤:

步骤S21,接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识。

本申请上述步骤S21中的接收客户端发送的访问表单请求,可以是通过网站web发送的表单页面访问请求,也可以是通过手机、电脑客户端发送的表单页面访问请求。例如,在网络购物时发送的访问用于订购货物的表单页面请求、在通过网络银行进行支付时发送的访问用于填写账号信息的表单页面请求、在注册网站账号时访问用于填写注册信息的表单页面请求等。

当服务器端每次接收到上述客户端发出的访问表单页面请求时,服务器端可以根据接收到的访问表单请求调用对应的表单参数,并向客户端发送表单参数,在生成与访问表单请求对应的表单参数的同时,生成一条唯一的索引数据。表单参数用于构建表单页面的具体内容,而索引数据则作为与表单参数对应的唯一的标识信息。

例如,以在通过网络银行进行支付时发送的访问用于填写账号信息的表单页面请求为例,当服务器端接收到发送自客户端的访问用于填写账号信息的表单页面的请求信息时,在生成与请求信息对应的表单页面的具体内容的同时,同时生成一条唯一的索引数据作为标识信息,作为该表单页面进行唯一性标识。当服务器端接收到发送自同一个客户端的多条访问表单页面的请求信息时,在生成多个表单参数的同时,为每个表单参数生成与之对应的唯一的索引数据。

步骤S23,将访问表单请求对应的表单参数和索引数据返回至客户端。

本申请上述步骤S23中,服务器端将为该访问表单请求生成一组对应的表单参数,以及与每个访问表单请求对应的索引数据,返回至发送表单请求的客户端。当客户端发送该访问表单请求至服务器端时,服务器端将返回该访问表单请求唯一的索引数据。

服务器端在将表单参数和索引数据返回至客户端后,客户端可以将表单参数转化为具体的表单页面进行显示。在客户端的登录用户对表单页面完成填写工作之后,由客户端将填写好的表单数据以及之前由服务器端生成的与表单数据对应的索引数据,封装为一个表单数据包,返回至服务器端。

由此,在本申请提供的一种可选方案中,服务器端可以在接收到客户端发送的访问表单请求后,生成并发送与访问表单请求对应的表单参数以及唯一的索引数据至客户端。客户端可以实现对表单参数进行渲染处理,生成表单页面以供填写表单内容。当填写表单内容完成后,生成表单,客户端将填写完成后生成的表单附上索引数据一同提交至服务器端。

步骤S25,接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据。其中,该步骤中的客户端在根据表单参数生成表单之后,提交当前生成的表单,如果存在该表单重复提交的情况,则 会导致客户端发送至少两个表单数据包。

本申请上述步骤S25中,服务器端接收发自客户端返回的多个表单数据包之后,每个表单数据包中都包含了根据表单参数生成的表单以及与表单对应的索引数据。进一步地,在当客户端因为重复刷新、网络延迟或者其他原因导致的表单参数重复提交时,服务器端接收到的重复提交的表单数据包中,会包含相同的索引数据,服务器端可以通过索引数据,判断当前哪些表单数据包为重复提交的表单数据包。

此处需要说明的是,在客户端接收到当前访问表单请求对应的表单参数和索引数据之后,会提交根据表单参数生成的表单,在提交表单时,因为各种原因,比如连续提交同一个表单至少两次,可能就会对同一个表单生成多个表单数据包提交到服务器,或者,虽然提交一次表单,但是由于网络堵塞造成网络重发服务端还是几乎同时收到同一个表单的两个表单数据包。需要说明的是,包含每个表单数据包中包含的索引数据是唯一的。因此,在服务器端识别接收到的表单数据包是否重复,仅通过判断索引数据是否相同就可以实现,具有方法简便且准确性高的特点。

步骤S27,保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

本申请上述步骤S27中,服务器端在接收所有的表单数据包之后,可以通过将所有的表单数据包存入数据库来实现保存表单的方案。在保存表单的过程中,通过检测各个表单数据包中的索引数据是否相同来确定是否保存该表单数据包,如果任意两个或多个表单数据包中对应的索引数据相同,则可以确定任意两个或多个表单数据包是重复提交的表单。当存在两个以上具有相同索引数据的表单数据包时,仅保留其中一个表单数据包,从而避免了重复提交表单的缺陷,同样的,如果后续提交的表单数据包中携带的索引数据与已经保存的表单数据包的索引数据相同,则可以确定当前后续提交的表单数据包为重复提交的数据包,丢弃该表单数据包。

一种可选方案中,服务器端可以在接收到客户端发送的表单数据包之后,统一对接收到的表单数据包进行存储,然后再通过对各个表单数据包中的索引数据进行比对,来确认是否有重复提交的表单数据包。当有重复提交的表单数据包时,随机在重复提交的表单数据包中选择一个进行保存。保存成功之后,删除其他与该表单数据包重复提交的表单数据包,以提高可靠性。

在实际应用当中,如果用户在首次访问某个网站时,这个网站通常会要求用户注册个人信息,在这个网站服务器端可以直接提取用户注册信息中的邮箱地址或者手机号码作为唯一性索引的索引数据。通过客户端提交包含注册信息的表单数据包后,服 务器端会将用户的表单数据包放入数据库进行存储。如果,用户重复提交包含注册信息的表单数据包(如:重复点击提交按钮,点击浏览器后退按钮,网络重发都会造成表单提交),由于有唯一性索引的索引数据,在后重复提交的包含有同样注册信息的注册表单都不可能进入数据库,从而保证了数据的唯一性。

由上可知,本申请上述实施例一所提供的方案,通过在发送与访问表单请求对应的表单参数的同时发送索引数据,客户端在返回表单数据包时同时将根据表单参数生成的表单和与与表单参数对应的索引数据返回服务器端,验证索引数据是否出现重复,来判断表单数据包是否重复,从而解决了由于同一个表单的重复提交,导致提交的表单数据不唯一的技术问题,从而实现了对表单提交过程的有效监控,并有效避免了表单重复提交。

上述方法在数据库层面通过索引数据做了唯一性控制,由于每个访问表单请求对应生成的索引数据是唯一的,即无法重复,因此,可以彻底避免重复提交现象的发生,并没有漏洞。在如果没有可以作为唯一性索引的值的场景时,比如通用调账,只是生成一条流水记录,表单中没有什么可以作为唯一性索引数据。这时,就可以通过在服务器端向客户端发送表单参数的同时,发送一个由服务器端随机产生的唯一的索引数据,即可实现在表单中没有业务字段可以作为唯一性索引数据的情况下,也能做到防止表单重复提交的技术效果。

结合图3所示的示例可知,本申请上述实施例步骤S21至步骤S27实现的技术方案中,在客户端的登录用户提交访问表单请求到服务器端后,在服务器端进入保存表单之前,会先生成该访问表单请求对应的唯一索引数据,该索引数据可以是一个索引序列sequence,该索引序列sequence可以对后续客户端提交的表单的保存过程进行唯一性控制,即针对一个索引序列sequence,仅允许保存一个表单至数据库或其它能够做唯一性控制的系统(如缓存系统),通过唯一性索引数据或多版本控制协议在数据层面保证与每一个索引序列sequence对应的表单参数只能被保存一次,如果之后对与该索引序列sequence的对应的表单参数的保存请求都会存储失败。

在本申请提供的一种可选实施例中,上述实施例中的步骤S27实现的保存至少两个表单数据包的步骤可以包括如下实施方案:

步骤S271,接收至少两个表单数据包。

步骤S273,检测每个表单数据包中包含的索引数据是否相同,其中,在检测到每个表单数据包中的索引数据都不相同的情况下,保存每个表单数据包;

在检测到任意两个或多个表单数据包中的索引数据相同的情况下,从具有相同索 引数据的表单数据包中选择一个表单数据包进行保存。

上述步骤S271至步骤S273中,服务器端将接收到的至少两个表单数据包中的每个索引数据进行比对,通过检测索引数据是否相同来确认是否存在重复提交的情况。当出现多个表单数据包中的索引数据相同时,说明有对同一表单数据包进行重复提交的情况发生,此时,对具有不同索引数据的表单数据包进行保存。

一种优选方案中,服务器端优先选择最先接收到的表单数据包进行保存,后续接收到的表单数据包中,如果后续接收到的表单数据包的索引数据与之前已经保存的表单数据包的索引数据相同,则丢弃后续接收到的表单数据包。

在实际应用当中,可以在服务器端,设置索引数据表。索引数据表用于存储作为唯一标识的索引数据。具体的,在检测每个表单数据包中包含的索引数据是否相同时,先将表单数据包中的索引数据在索引数据表中进行查询。如果索引数据表中没有包含该条索引数据,则将该索引数据记录于索引数据表当中。如果索引数据表中已经包含该条索引数据,则说明包含有该条索引数据的表单数据包被重复发送过。

优选的,在执行上述步骤S273检测每个表单数据包中包含的索引数据是否相同时,如果在检测到任意两个或多个表单数据包中的索引数据相同的情况下,从具有相同索引数据的表单数据包中选择一个表单数据包进行保存可以包括如下任意一种方案:

方案一:按照表单数据包中携带的第一时间戳,从具有相同索引数据的表单数据包中选择最先请求表单而获取到的表单数据包进行保存,其中,第一时间戳为接收到客户端发送的访问表单请求时产生的时间戳。

在方案一中,为表单数据包添加用于标记服务器端接收到客户端发送的访问表单请求时生成的时间戳,从而根据时间戳的前后顺序,来选择要保存的表单数据包。当接收到多个具有相同索引数据的表单数据包时,在各个时间戳中,选择与时间在前的时间戳对应的表单数据包进行保存。

方案二:按照表单数据包中携带的第二时间戳,从具有相同索引数据的表单数据包中选择生成表单最早的表单数据包进行保存,其中,第二时间戳为客户端根据表单参数生成表单时同时产生的时间戳。

在方案二中,为表单数据包添加用于标记客户端生成表单时生成的时间戳,从而根据时间戳的前后顺序,来选择要保存的表单数据包。当接收到多个具有相同索引数据的表单数据包时,在各个时间戳中,选择与时间在前的时间戳对应的表单数据包进行保存。

方案三:按照表单数据包中携带的第三时间戳,从具有相同索引数据的表单数据包中选择最先接收到的表单数据包进行保存,其中,第三时间戳为接收到客户端返回的表单数据包时产生的时间戳。

在方案三中,为表单数据包添加用于标记服务器端最先接收到的表单数据包时生成的时间戳,从而根据时间戳的前后顺序,来选择要保存的表单数据包。当接收到多个具有相同索引数据的表单数据包时,在各个时间戳中,选择与时间在前的时间戳对应的表单数据包进行保存。

方案四:按照表单数据包的预定优先级,从具有相同索引数据的表单数据包中选择优先级最高的表单数据包进行保存。

在方案四中,可以对各个表单数据包添加上述方案一至方案三中的三种时间戳,并根据三种时间戳对表单数据包进行赋值运算,计算得出权重值,根据权重值的大小,设置表单数据包的优先级。通过表单数据包权重值的大小,来选择要保存的表单数据包。当接收到多个具有相同索引数据的表单数据包时,选择优先级最高的表单数据包进行保存。

除此之外,还可以通过其他条件,对表单数据包的优先级进行划分。例如,表单数据包的大小、表单数据包中表单参数的完整程度等。以上仅为示例,本申请提供的方案不限于此。

在本申请提供的另一种可选实施例中,在上述实施例中的步骤S27保存至少两个表单数据包之前,方法还包括:

步骤S261,对每个表单数据包中的表单进行校验,得到校验结果。

步骤S263,在校验结果为表单为有效表单的情况下,执行保存至少两个表单数据包的步骤。

步骤S265,在校验结果为表单为无效表单的情况下,抛弃具有无效表单的表单数据包;其中,有效表单是指表单的属性特征满足预设条件,属性特征包括:表单的格式、表单包含的字符长度、字符类型。

通过上述步骤S261至步骤S265,在保存至少两个表单数据报之前,对每个表单数据包的有效性进行校验。只对校验结果为有效表单的表单数据包进行保存。对于校验结果为无效表单的表单数据包,则直接抛弃,不执行保存至少两个表单数据包的步骤。

在实际应用当中,可以预先为各个表单数据包设置相应的包含表单的格式、字符 长度和字符类型的标准属性。通过将每个表单数据包的属性特征与标准属性进行比对,来判断表单数据包是否有效。当属性特征与标准属性匹配时,则判定该表单数据包为有效的表单数据包。

以表单的格式限定条件为例,如果当前表单中密码数据框中接收到的字符类型预先限定为需要包括:数字、符号的组合,如果接收到的表单的密码仅为数字的组合,此时表单不符合安全性要求,此时提交的表单为无效表单。在网络支付表单的金额数据框中,格式会被限定为数字。如果当前支付表单的金额数据框中出现数字以外的字符时,则认为此表但不符合要求,判定次表单为无效表单。当然,还可以针对不同的表单类型,以及表单中的数据框的属性,来对在数据框中输入的数据类型进行限定,通过判定在数据框中输入的字符类型是否符合预先设置的规则,来确定当前表单是否有效。

在本申请提供的另一种可选实施例中,在步骤S23将访问表单请求对应的表单参数和索引数据返回至客户端之后,方法还包括:

步骤S241,客户端调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面。

本申请上述步骤S241的实现方案中,可以采用表单渲染器来实现表单渲染功能。其中,表单渲染器可以根据服务器发送的表格布局参数,以及输入框和按钮的位置参数,直接渲染成用于展示的表单页面。也可以针对每种表单,设置一个层叠样式表css文件。层叠样式表css文件中包含了与访问表单请求对应的表单输入界面的布局内容。客户端通过读取层叠样式表的内容,构建出用于战士的表单页面。

步骤S243,客户端通过表单输入界面接收表单内容,生成待提交的表单。

步骤S245,客户端将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

具体的,客户端在接收到表单参数后,按照表单参数对表单页面进行渲染,生成与表单请求对应的用于接收表单内容的输入界面。然后客户端通过接收表单内容,生成待提交的表单参数。最后客户端将待提交的表单参数和索引数据组合成表单数据包,发送至服务器端。

在实际应用中,表单参数可以至少包括用于构成表单页面框架的模板参数、用于提示输入内容的提示参数、以及用于构成提交按钮的功能参数。客户端根据上述表单参数,生成与访问表单请求对应的表单输入界面。

在本申请提供的另一种可选实施例中,在步骤S21生成访问表单请求所对应的索引数据中,步骤包括:

步骤S211,提取访问表单请求中的特征数据。

步骤S213,使用随机码生成器对特征数据进行处理,将生成的随机码作为索引数据。

此处需要说明的,生成随机码的方法,可以是将客户端提出访问表单请求的时间和用户的手机号作为特征数据,以特定方式进行组合,来生成随机码。也可以通过提出服务器接收到访问表单请求的时间作为特征数据,与固定位数的随机数进行组合,,来生成随机码。当然,还可以是客户端提出访问表单请求的时间、服务器接收到访问表单请求的时间、用户的手机号、用户的邮箱地址等其中任意一个或多个特征数据相结合,来生成随机码。

以将服务器接收到访问表单请求的时间作为特征数据,与固定位数的随机数进行组合,来生成随机码的方式进行说明。通过读取表单数据包的属性,服务器接收到访问表单请求的时间,如“20150210,18:00:00”,将时间类型的字符通过类型转换,转换为字符串类型。同时通过随机函数,生成一个固定位数的数字。将上述字符串和数字进行合并,从而得到最终的随机码。当然,随机码的具体位数可以根据对表单生成数量的需求而定。

在本申请提供的另一种可选实施例中,在步骤S21接收客户端发送的访问表单请求的同时,服务器端还接收当前登录客户端的用户的注册信息,其中,在从注册信息中提取用户属性数据之后,将用户属性数据设置为访问表单请求所对应的索引数据,用户属性数据为当前登录客户端的用户的唯一标识信息。

服务器端通过判断发送访问表单请求的客户端的用户登录状态,来确认是否使用用户的注册信息作为索引数据。如果,当前客户端的用户登录状态为登录时,则提取用户注册信息中的用户属性数据作为索引数据。

在实际应用当中,以电子购物网站为例进行说明。如果在客户端向服务器端发送访问结算表单请求时,获取当前客户端是否为用户登录状态。如果在用户登录状态为登录时,直接提取在用户的注册信息中绑定的电子邮箱或者手机号,作为当前结算表单的索引数据。

结合上述实施例一,以网络银行通过网络页面实现的支付功能为例,结合图3可知,本申请提供的实施方式可以包括以下步骤:

步骤A,由客户端向服务器端发送访问表单请求,该访问表单请求可以是用于访问支付页面的访问请求。

步骤B,服务器端根据客户端发送来的访问表单请求,在生成用于构成支付页面的表单参数的同时,会生成与支付页面的访问请求对应的唯一索引数据,该索引数据可以是一个索引序列sequence,该索引序列sequence可以对后续客户端提交的表单的保存过程进行唯一性控制。

步骤C,服务器端将索引序列sequence与用于构成支付页面的表单参数一同返回发送访问请求的客户端。

步骤D,客户端使用表单渲染器对服务器发送来的表单参数进行渲染,生成支付页面。并在该支付页面上完成填写完整的支付信息,生成表单。

步骤E,客户端将生成的表单以及之前由服务器端生成的与支付页面对应的索引序列sequence封装为一个表单数据包,返回至服务器端,完成表单的提交工作。

步骤F,服务器对接收到的表单数据包中包含的索引序列sequence进行验证,验证该表单数据包中的索引序列sequence在所有接收到的表单数据包的索引序列sequence中是否唯一。

步骤G,如果该索引序列sequence唯一,对该表单数据包中的支付页面信息存入数据库。

步骤H,如果该索引序列sequence不唯一,不对表按数据包中的支付页面信息进行存入数据库操作。

上述步骤可以实现,针对一个索引序列sequence,仅允许保存一个表单至数据库或其它能够做唯一性控制的系统(如缓存系统),通过唯一性索引数据或多版本控制协议在数据层面保证与每一个索引序列sequence对应的表单参数只能被保存一次,如果之后对与该索引序列sequence的对应的表单参数的保存请求都会存储失败。

综上所述,通过本发明针对上述方案,达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的目的。解决了无法对表单的重复提交进行有效地监控,导致的所提交的表单数据不唯一的技术问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块 并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上运行。

图4是根据本法实施例二的控制表单重复提交的装置的结构示意图。如图4所示,该装置包括:处理模块31、返回模块33、接收模块35、存储模块37。

其中,处理模块31,用于接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;返回模块33,用于将访问表单请求对应的表单参数和索引数据返回至客户端;接收模块35,用于接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;存储模块37,用于保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

在实际应用当中,如果客户端在首次访问某个网站时,这个网站通常会要求用户注册个人信息,在这个网站服务器端可以直接提取用户注册信息中的邮箱地址或者手机号码作为唯一性索引的索引数据。通过客户端提交包含注册信息的表单数据包后,服务器端会将用户的表单数据包放入数据库进行存储。如果,用户重复提交包含注册信息的表单数据包(如:重复点击提交按钮,点击浏览器后退按钮,网络重发都会造成表单提交),由于有唯一性索引的索引数据,在后重复提交的包含有同样注册信息的注册表单都不可能进入数据库,从而保证了数据的唯一性。

上述方法在数据库层面通过索引数据做了唯一性控制,由于每个访问表单请求对应生成的索引数据是唯一的,即无法重复,因此,可以彻底避免重复提交现象的发生,并没有漏洞。在如果没有可以作为唯一性索引的值的场景时,比如通用调账,只是生成一条流水记录,表单中没有什么可以作为唯一性索引数据。这时,就可以通过在服 务器端向客户端发送表单参数的同时,发送一个由服务器端随机产生的唯一的索引数据,即可实现在表单中没有业务字段可以作为唯一性索引数据的情况下,也能做到防止表单重复提交的技术效果。

结合图3所示的示例可知,通过本申请上述实施例中的处理模块31、返回模块33、接收模块35、存储模块37实现的技术方案中,在客户端的登录用户提交访问表单请求到服务器端后,在服务器端进入保存表单之前,会先生成该访问表单请求对应的唯一索引数据,该索引数据可以是一个索引序列sequence,该索引序列sequence可以对后续客户端提交的表单的保存过程进行唯一性控制,即针对一个索引序列sequence,仅允许保存一个表单至数据库或其它能够做唯一性控制的系统(如缓存系统),通过唯一性索引数据或多版本控制协议在数据层面保证与每一个索引序列sequence对应的表单参数只能被保存一次,如果之后对与该索引序列sequence的对应的表单参数的保存请求都会存储失败。

此处需要说明的是,上述处理模块31、返回模块33、接收模块35、存储模块37对应于实施例一中的步骤S21至步骤S27,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

如图5所示,在本申请提供的一种可选实施例中,上述存储模块37包括:子接收模块371、检测模块373、第一保存模块375、第二保存模块377。

其中,子接收模块371,用于接收至少两个表单数据包;检测模块373,用于检测每个表单数据包中包含的索引数据是否相同;第一保存模块375,用于在检测到每个表单数据包中的索引数据都不相同的情况下,保存每个表单数据包;第二保存模块377,用于在检测到任意两个或多个表单数据包中的索引数据相同的情况下,从具有相同索引数据的表单数据包中选择一个表单数据包进行保存。

通过上述子接收模块371、检测模块373、第一保存模块375、第二保存模块377中,服务器端将接收到的至少两个表单数据包中的每个索引数据进行比对,通过检测索引数据是否相同来确认是否存在重复提交的情况。当出现多个表单数据包中的索引数据相同时,说明有对同一表单数据包进行重复提交的情况发生,此时,对具有不同索引数据的表单数据包进行保存。

一种优选方案中,服务器端优先选择最先接收到的表单数据包进行保存,后续接收到的表单数据包中,如果后续接收到的表单数据包的索引数据与之前已经保存的表单数据包的索引数据相同,则丢弃后续接收到的表单数据包。

在实际应用当中,可以在服务器端,设置索引数据表。索引数据表用于存储作为唯一标识的索引数据。具体的,在检测每个表单数据包中包含的索引数据是否相同时,先将表单数据包中的索引数据在索引数据表中进行查询。如果索引数据表中没有包含该条索引数据,则将该索引数据记录于索引数据表当中。如果索引数据表中已经包含该条索引数据,则说明包含有该条索引数据的表单数据包被重复发送过。

此处需要说明的是,上述子接收模块371对应于实施例一中的步骤S271,上述检测模块373、第一保存模块375、第二保存模块377对应于实施例一中的步骤S273,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

优选地,本申请上述实施例中,第二保存模块377包括如下任意一个功能模块:第一选择模块377a、第二选择模块377b、第三选择模块377c和第四选择模块377d。

其中,第一选择模块377a,用于按照表单数据包中携带的第一时间戳,从具有相同索引数据的表单数据包中选择最先请求表单而获取到的表单数据包进行保存,其中,第一时间戳为接收到客户端发送的访问表单请求时产生的时间戳;

第二选择模块377b,用于按照表单数据包中携带的第二时间戳,从具有相同索引数据的表单数据包中选择生成表单最早的表单数据包进行保存,其中,第二时间戳为客户端根据表单参数生成表单时同时产生的时间戳;

第三选择模块377c,用于按照表单数据包中携带的第三时间戳,从具有相同索引数据的表单数据包中选择最先接收到的表单数据包进行保存,其中,第三时间戳为接收到客户端返回的表单数据包时产生的时间戳;

第四选择模块377d,用于按照表单数据包的预定优先级,从具有相同索引数据的表单数据包中选择优先级最高的表单数据包进行保存。

除此之外,还可以通过其他条件,对表单数据包的优先级进行划分。例如,表单数据包的大小、表单数据包中表单参数的完整程度等。以上仅为示例,本申请提供的方案不限于此。

此处需要说明的是,上述第一选择模块377a、第二选择模块377b、第三选择模块377c或者第四选择模块377d对应于实施例一中步骤S273中的四种方案,四个模块与对应的方案所包含的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

优选的,如图6所示,本申请上述实施例中,装置还包括:校验模块361、第一处理模块363和第二处理模块365。

其中,校验模块361,用于对每个表单数据包中的表单进行校验,得到校验结果;第一处理模块363,用于在校验结果为表单为有效表单的情况下,执行保存至少两个表单数据包的步骤;第二处理模块365,用于在校验结果为表单为无效表单的情况下,抛弃具有无效表单的表单数据包;其中,有效表单是指表单的属性特征满足预设条件,属性特征包括:表单的格式、表单包含的字符长度、字符类型。

通过上述校验模块361、第一处理模块363和第二处理模块365,在保存至少两个表单数据报之前,对每个表单数据包的有效性进行校验。只对校验结果为有效表单的表单数据包进行保存。对于校验结果为无效表单的表单数据包,则直接抛弃,不执行保存至少两个表单数据包的步骤。

在实际应用当中,可以预先为各个表单数据包设置相应的包含表单的格式、字符长度和字符类型的标准属性。通过将每个表单数据包的属性特征与标准属性进行比对,来判断表单数据包是否有效。当属性特征与标准属性匹配时,则判定该表单数据包为有效的表单数据包。

以表单的格式限定条件为例,如果当前表单中密码数据框中接收到的字符类型预先限定为需要包括:数字、符号的组合,如果接收到的表单的密码仅为数字的组合,此时表单不符合安全性要求,此时提交的表单为无效表单。在网络支付表单的金额数据框中,格式会被限定为数字。如果当前支付表单的金额数据框中出现数字以外的字符时,则认为此表但不符合要求,判定次表单为无效表单。当然,还可以针对不同的表单类型,以及表单中的数据框的属性,来对在数据框中输入的数据类型进行限定,通过判定在数据框中输入的字符类型是否符合预先设置的规则,来确定当前表单是否有效。

此处需要说明的是,上述校验模块261、第一处理模块263和第二处理模块265对应于实施例一中步骤S261至步骤S265,三个模块与对应的方案所包含的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

进一步的,通过返回模块33在将每个访问表单请求对应的表单参数和索引数据返回至客户端之后,装置还可以执行如下步骤包括:

客户端调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面。进而,通过表单输入界面接收表单内容,生成待提交的表单。最后,将生成的表单以 及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

在实际应用中,表单参数可以至少包括用于构成表单页面框架的模板参数、用于提示输入内容的提示参数、以及用于构成提交按钮的功能参数。客户端根据上述表单参数,生成与访问表单请求对应的表单输入界面。

优选的,如图7所示,本申请上述实施例中,处理模块31包括:第一子处理模块311或第二子处理模块313。

其中,第一子处理模块311,用于提取访问表单请求中的特征数据,并使用随机码生成器对特征数据进行处理,将生成的随机码作为索引数据;或第二子处理模块313,用于在接收客户端发送的访问表单请求的同时,接收当前登录客户端的用户的注册信息,并将注册信息中提取到的用户属性数据设置为访问表单请求所对应的索引数据,用户属性数据为当前登录客户端的用户的唯一标识信息。

通过上述第一子处理模块311或第二子处理模块313生成随机码的方法,可以是将客户端提出访问表单请求的时间和用户的手机号作为特征数据,以特定方式进行组合,来生成随机码。也可以通过提出服务器接收到访问表单请求的时间作为特征数据,与固定位数的随机数进行组合,,来生成随机码。当然,还可以是客户端提出访问表单请求的时间、服务器接收到访问表单请求的时间、用户的手机号、用户的邮箱地址等其中任意一个或多个特征数据相结合,来生成随机码。

此处需要说明的是,上述第一子处理模块311或第二子处理模块313分别对应于实施例一中步骤S211或步骤S213,三个模块与对应的方案所包含的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

实施例3

根据本发明实施例,还提供了一种控制表单重复提交的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请提供了如图8所示的控制表单重复提交的方法,本方法应用于客户端。图8是根据本发明实施例三的控制表单重复提交的方法的流程图。

如图8所示,用于执行该表单重复提交的方法的计算机终端10可以是服务器,一种可选的方案包括如下实施步骤:

步骤S41,发送访问表单请求至服务器。

本申请上述步骤S41中的客户端向服务器端发送访问表单请求,可以是通过网站web发送的表单页面访问请求,也可以是通过手机、电脑客户端发送的表单页面访问请求。例如,在网络购物时发送的访问用于订购货物的表单页面请求、在通过网络银行进行支付时发送的访问用于填写账号信息的表单页面请求、在注册网站账号时访问用于填写注册信息的表单页面请求等。

步骤S43,接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识。

本申请上述步骤S43中,客户端接收通过服务器端为每个访问表单请求生成的一组对应的表单参数,以及与每个访问表单请求对应的索引数据。当客户端发送多个访问表单请求至服务器端时,服务器端将返回同样数量的索引数据,每个访问表单请求的索引数据各不相同。

步骤S45,根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据。

本申请上述步骤S45中,向服务器端发送包含有根据表单参数生成的表单以及与表单对应的索引数据。进一步地,在当客户端因为重复刷新、网络延迟或者其他原因导致的表单参数重复提交时,服务器端接收到的重复提交的表单数据包中,会包含相同的索引数据,服务器端可以通过索引数据,判断当前哪些表单数据包为重复提交的表单数据包。

此处需要说明的是,在客户端接收到当前访问表单请求对应的表单参数和索引数据之后,会提交根据表单参数生成的表单,在提交表单时,因为各种原因,比如连续提交同一个表单至少两次,可能就会对同一个表单生成多个表单数据包提交到服务器,或者,虽然提交一次表单,但是由于网络堵塞造成网络重发服务端还是几乎同时收到同一个表单的两个表单数据包。需要说明的是,包含每个表单数据包中包含的索引数据是唯一的。因此,在服务器端识别接收到的表单数据包是否重复,仅通过判断索引数据是否相同就可以实现,具有方法简便且准确性高的特点。

步骤S47,发送至少两个表单数据包至服务器,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,服务器仅保存其中一个表单数据包。

本申请上述步骤S47中,服务器端在接收由客户端发送的所有的表单数据包之后,可以通过将所有的表单数据包存入数据库来实现保存表单的方案。在保存表单的过程 中,通过检测各个表单数据包中的索引数据是否相同来确定是否保存该表单数据包,如果任意两个或多个表单数据包中对应的索引数据相同,则可以确定任意两个或多个表单数据包是重复提交的表单。当存在两个以上具有相同索引数据的表单数据包时,仅保留其中一个表单数据包,从而避免了重复提交表单的缺陷,同样的,如果后续提交的表单数据包中携带的索引数据与已经保存的表单数据包的索引数据相同,则可以确定当前后续提交的表单数据包为重复提交的数据包,丢弃该表单数据包。

一种可选方案中,服务器端可以在接收到客户端发送的表单数据包之后,统一对接收到的表单数据包进行存储,然后再通过对各个表单数据包中的索引数据进行比对,来确认是否有重复提交的表单数据包。当有重复提交的表单数据包时,随机在重复提交的表单数据包中选择一个进行保存。保存成功之后,删除其他与该表单数据包重复提交的表单数据包,以提高可靠性。

在实际应用当中,如果客户端在首次访问某个网站时,这个网站通常会要求用户注册个人信息,在这个网站服务器端可以直接提取用户注册信息中的邮箱地址或者手机号码作为唯一性索引的索引数据。通过客户端提交包含注册信息的表单数据包后,服务器端会将用户的表单数据包放入数据库进行存储。如果,用户重复提交包含注册信息的表单数据包(如:重复点击提交按钮,点击浏览器后退按钮,网络重发都会造成表单提交),由于有唯一性索引的索引数据,在后重复提交的包含有同样注册信息的注册表单都不可能进入数据库,从而保证了数据的唯一性。

上述方法在数据库层面通过索引数据做了唯一性控制,由于每个访问表单请求对应生成的索引数据是唯一的,即无法重复,因此,可以彻底避免重复提交现象的发生,并没有漏洞。在如果没有可以作为唯一性索引的值的场景时,比如通用调账,只是生成一条流水记录,表单中没有什么可以作为唯一性索引数据。这时,就可以通过在服务器端向客户端发送表单参数的同时,发送一个由服务器端随机产生的唯一的索引数据,即可实现在表单中没有业务字段可以作为唯一性索引数据的情况下,也能做到防止表单重复提交的技术效果。

结合图3所示的示例可知,本申请上述实施例步骤S41至步骤S47实现的技术方案中,在客户端的登录用户提交访问表单请求到服务器端后,在服务器端进入保存表单之前,会先生成该访问表单请求对应的唯一索引数据,该索引数据可以是一个索引序列sequence,该索引序列sequence可以对后续客户端提交的表单的保存过程进行唯一性控制,即针对一个索引序列sequence,仅允许保存一个表单至数据库或其它能够做唯一性控制的系统(如缓存系统),通过唯一性索引数据或多版本控制协议在数据层面保证与每一个索引序列sequence对应的表单参数只能被保存一次,如果之后对与该 索引序列sequence的对应的表单参数的保存请求都会存储失败。

一种可选方案中,在步骤S43接收服务器生成的访问表单请求所对应的表单参数和索引数据之后,方法还包括:

步骤S441,调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面。

本申请上述步骤S441的实现方案中,可以采用表单渲染器来实现表单渲染功能。其中,表单渲染器用于根据服务器发送的表格布局参数,以及输入框和按钮的位置参数,直接渲染成用于展示的表单页面。也可以针对每种表单,设置一个层叠样式表css文件。层叠样式表css文件中包含了与访问表单请求对应的表单输入界面的布局内容。客户端通过读取层叠样式表的内容,构建出用于展示的表单页面。

步骤S443,通过表单输入界面接收表单内容,生成待提交的表单。

步骤S445,将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

具体的,客户端在接收到表单参数后,按照表单参数对表单页面进行渲染,生成与表单请求对应的用于接收表单内容的输入界面。然后客户端通过接收表单内容,生成待提交的表单参数。最后客户端将待提交的表单参数和索引数据组合成表单数据包,发送至服务器端。

在实际应用中,表单参数可以至少包括用于构成表单页面框架的模板参数、用于提示输入内容的提示参数、以及用于构成提交按钮的功能参数。客户端根据上述表单参数,生成与访问表单请求对应的表单输入界面。

综上所述,通过本发明针对上述方案,达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的目的。解决了无法对表单的重复提交进行有效地监控,导致的所提交的表单数据不唯一的技术问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但 很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例4

根据本发明实施例,还提供了一种用于实施上述方法实施例的装置实施例,本申请上述实施例所提供的装置可以在计算机终端上、类似的运算装置中运行。

图9是根据本法实施例四的控制表单重复提交的装置的结构示意图。如图9所示,该装置包括:第一发送模块51、第一接收模块53、第一生成模块55、第二发送模块57。

其中,第一发送模块51,用于发送访问表单请求至服务器;第一接收模块53,用于接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;第一生成模块55,用于根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;第二发送模块57,用于发送至少两个表单数据包至服务器,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,服务器仅保存其中一个表单数据包。

在实际应用当中,如果客户端在首次访问某个网站时,这个网站通常会要求用户注册个人信息,在这个网站服务器端可以直接提取用户注册信息中的邮箱地址或者手机号码作为唯一性索引的索引数据。通过客户端提交包含注册信息的表单数据包后,服务器端会将用户的表单数据包放入数据库进行存储。如果,用户重复提交包含注册信息的表单数据包(如:重复点击提交按钮,点击浏览器后退按钮,网络重发都会造成表单提交),由于有唯一性索引的索引数据,在后重复提交的包含有同样注册信息的注册表单都不可能进入数据库,从而保证了数据的唯一性。

上述方法在数据库层面通过索引数据做了唯一性控制,由于每个访问表单请求对应生成的索引数据是唯一的,即无法重复,因此,可以彻底避免重复提交现象的发生,并没有漏洞。在如果没有可以作为唯一性索引的值的场景时,比如通用调账,只是生成一条流水记录,表单中没有什么可以作为唯一性索引数据。这时,就可以通过在服务器端向客户端发送表单参数的同时,发送一个由服务器端随机产生的唯一的索引数据,即可实现在表单中没有业务字段可以作为唯一性索引数据的情况下,也能做到防 止表单重复提交的技术效果。

结合图3所示的示例可知,本申请上述实施例步骤S41至步骤S47实现的技术方案中,在客户端的登录用户提交访问表单请求到服务器端后,在服务器端进入保存表单之前,会先生成该访问表单请求对应的唯一索引数据,该索引数据可以是一个索引序列sequence,该索引序列sequence可以对后续客户端提交的表单的保存过程进行唯一性控制,即针对一个索引序列sequence,仅允许保存一个表单至数据库或其它能够做唯一性控制的系统(如缓存系统),通过唯一性索引数据或多版本控制协议在数据层面保证与每一个索引序列sequence对应的表单参数只能被保存一次,如果之后对与该索引序列sequence的对应的表单参数的保存请求都会存储失败。

此处需要说明的是,上述第一发送模块51、第一接收模块53、第一生成模块55、第一保存模块57对应于实施例三中的步骤S41至步骤S47,四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的计算机终端10中。

一种可选方案中,如图10所示,在执行第一接收模块53的功能之后,装置还包括:调用模块541、生成模块543和组合模块545。

其中,调用模块541,用于调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面;生成模块543,用于通过表单输入界面接收表单内容,生成待提交的表单;组合模块545,用于将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

具体的,表单渲染功能处理可以直接通过表单渲染器来实现表单渲染功能。其中,表单渲染器用于根据服务器发送的表格布局参数,以及输入框和按钮的位置参数,直接渲染成用于展示的表单页面。也可以针对每种表单,设置一个层叠样式表css文件。层叠样式表css文件中包含了与访问表单请求对应的表单输入界面的布局内容。客户端通过读取层叠样式表的内容,构建出用于展示的表单页面。

具体的,客户端在接收到表单参数后,按照表单参数对表单页面进行渲染,生成与表单请求对应的用于接收表单内容的输入界面。然后客户端通过接收表单内容,生成待提交的表单参数。最后客户端将待提交的表单参数和索引数据组合成表单数据包,发送至服务器端。

在实际应用中,表单参数可以至少包括用于构成表单页面框架的模板参数、用于提示输入内容的提示参数、以及用于构成提交按钮的功能参数。客户端根据上述表单参数,生成与访问表单请求对应的表单输入界面。

综上所述,通过本发明针对上述方案,达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的目的。解决了无法对表单的重复提交进行有效地监控,导致的所提交的表单数据不唯一的技术问题。

此处需要说明的是,上述调用模块541、生成模块543和组合模块545对应于实施例三中的步骤S441至步骤S445,上述三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例三提供的计算机终端10中。

实施例5

图11是根据本发明实施例五的一种控制表单重复提交的系统的结构框图。

如图11所示,该控制表单重复提交的系统可以包括:客户端101和服务器102。

其中,客户端101,用于发送访问表单请求;

服务器102,与客户端101建立通信,用于接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,在将访问表单请求对应的表单参数和索引数据返回至客户端之后,接收客户端返回的至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包;

其中,客户端根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据,索引数据为访问表单请求的唯一标识。

上述系统所提供的方案中,服务器可以将表单数据包保存至数据库,即可以实现在数据库层面通过索引数据进行唯一性控制,由于每个访问表单请求对应生成的索引数据是唯一的,即无法重复,因此,可以彻底避免重复提交现象的发生,并没有漏洞。在如果没有可以作为唯一性索引的值的场景时,比如通用调账,只是生成一条流水记录,表单中没有什么可以作为唯一性索引数据。这时,就可以通过在服务器端向客户端发送表单参数的同时,发送一个由服务器端随机产生的唯一的索引数据,即可实现在表单中没有业务字段可以作为唯一性索引数据的情况下,也能做到防止表单重复提交的技术效果。

此处需要说明的是,本申请实施例5所涉及到的系统实施例可以包括多个可选的或优选的实施例,可选的或优选的实施例可以与实施例1或实施例3提供的优选或可选实施例相同,但不限于上述实施例1或实施例3提供的优选或可选实施例。

实施例6

本发明的实施例可以提供一种计算机终端,该计算机终端可以是应用于服务器端的计算机终端群中的任意一个计算机终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选地,该计算机终端可以包括:一个或多个处理器、存储器、以及传输装置。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器用于存储预设动作条件和预设权限用户的信息、以及应用程序。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包, 其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选的,上述处理器还可以执行如下步骤的程序代码:接收至少两个表单数据包;检测每个表单数据包中包含的索引数据是否相同,其中,在检测到每个表单数据包中的索引数据都不相同的情况下,保存每个表单数据包;在检测到任意两个或多个表单数据包中的索引数据相同的情况下,从具有相同索引数据的表单数据包中选择一个表单数据包进行保存。

可选的,上述处理器还可以执行如下步骤的程序代码:按照表单数据包中携带的第一时间戳,从具有相同索引数据的表单数据包中选择最先请求表单而获取到的表单数据包进行保存,其中,第一时间戳为接收到客户端发送的访问表单请求时产生的时间戳;按照表单数据包中携带的第二时间戳,从具有相同索引数据的表单数据包中选择生成表单最早的表单数据包进行保存,其中,第二时间戳为客户端根据表单参数生成表单时同时产生的时间戳;按照表单数据包中携带的第三时间戳,从具有相同索引数据的表单数据包中选择最先接收到的表单数据包进行保存,其中,第三时间戳为接收到客户端返回的表单数据包时产生的时间戳;按照表单数据包的预定优先级,从具有相同索引数据的表单数据包中选择优先级最高的表单数据包进行保存。

可选的,上述处理器还可以执行如下步骤的程序代码:对每个表单数据包中的表单进行校验,得到校验结果;在校验结果为表单为有效表单的情况下,执行保存至少两个表单数据包的步骤;在校验结果为表单为无效表单的情况下,抛弃具有无效表单的表单数据包;其中,有效表单是指表单的属性特征满足预设条件,属性特征包括:表单的格式、表单包含的字符长度、字符类型。

可选的,上述处理器还可以执行如下步骤的程序代码:客户端调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面;客户端通过表单输入界面接收表单内容,生成待提交的表单;客户端将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

可选的,上述处理器还可以执行如下步骤的程序代码:提取访问表单请求中的特征数据;使用随机码生成器对特征数据进行处理,将生成的随机码作为索引数据。

可选的,上述处理器还可以执行如下步骤的程序代码:将用户属性数据设置为访问表单请求所对应的索引数据,用户属性数据为当前登录客户端的用户的唯一标识信息。

采用本发明实施例,提供了一种控制表单重复提交的方案。通过接收客户端发送 的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包,从而达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的的目的,进而解决了由于同一个表单的重复提交,导致提交的表单数据不唯一的技术问题。

本领域普通技术人员可以理解,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。但并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比上述电子装置更多或者更少的组件(如网络接口、显示装置等),或者具有与上述电子装置不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例7

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的控制表单重复提交的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收客户端发送的访问表单请求,生成访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;将访问表单请求对应的表单参数和索引数据返回至客户端;接收客户端返回的至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:接收至少两个表单数据包;检测每个表单数据包中包含的索引数据是否相同,其中,在检测到每个表单数据包中的索引数据都不相同的情况下,保存每个表单数据包;在检测到任意两个 或多个表单数据包中的索引数据相同的情况下,从具有相同索引数据的表单数据包中选择一个表单数据包进行保存。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:按照表单数据包中携带的第一时间戳,从具有相同索引数据的表单数据包中选择最先请求表单而获取到的表单数据包进行保存,其中,第一时间戳为接收到客户端发送的访问表单请求时产生的时间戳;按照表单数据包中携带的第二时间戳,从具有相同索引数据的表单数据包中选择生成表单最早的表单数据包进行保存,其中,第二时间戳为客户端根据表单参数生成表单时同时产生的时间戳;按照表单数据包中携带的第三时间戳,从具有相同索引数据的表单数据包中选择最先接收到的表单数据包进行保存,其中,第三时间戳为接收到客户端返回的表单数据包时产生的时间戳;按照表单数据包的预定优先级,从具有相同索引数据的表单数据包中选择优先级最高的表单数据包进行保存。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:对每个表单数据包中的表单进行校验,得到校验结果;在校验结果为表单为有效表单的情况下,执行保存至少两个表单数据包的步骤;在校验结果为表单为无效表单的情况下,抛弃具有无效表单的表单数据包;其中,有效表单是指表单的属性特征满足预设条件,属性特征包括:表单的格式、表单包含的字符长度、字符类型。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:客户端调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面;客户端通过表单输入界面接收表单内容,生成待提交的表单;客户端将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:提取访问表单请求中的特征数据;使用随机码生成器对特征数据进行处理,将生成的随机码作为索引数据。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:将用户属性数据设置为访问表单请求所对应的索引数据,用户属性数据为当前登录客户端的用户的唯一标识信息。

此处需要说明的是,上述计算机终端群中的任意一个可以与网站服务器和扫描器建立通信关系,扫描器可以扫描计算机终端上php执行的web应用程序的值命令。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的服务器端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

实施例8

本发明的实施例可以提供一种计算机终端,该计算机终端可以是应用于客户端的计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:发送访问表单请求至服务器;接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选地,该计算机终端A可以包括:一个或多个处理器、存储器、以及传输装置。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置为射频(Radio Frequency,RF) 模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器用于存储预设动作条件和预设权限用户的信息、以及应用程序。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:发送访问表单请求至服务器;接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选的,上述处理器还可以执行如下步骤的程序代码:调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面;通过表单输入界面接收表单内容,生成待提交的表单;将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

采用本发明实施例,提供了一种控制表单重复提交的方案。通过发送访问表单请求至服务器;接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包,从而达到了通过为表单数据添加索引数据,来保证保存的表单数据具有唯一性的目的,进而解决了由于同一个表单的重复提交,导致提交的表单数据不唯一的技术问题。

本领域普通技术人员可以理解,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。但并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比上述电子装置更多或者更少的组件(如网络接口、显示装置等),或者具有与上述电子装置不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

实施例9

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例三所提供的控制表单重复提交的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:可选的,存储介质被设置为存储用于执行以下步骤的程序代码:发送访问表单请求至服务器;接收服务器生成的访问表单请求所对应的表单参数和索引数据,其中,索引数据为访问表单请求的唯一标识;根据访问表单请求所对应的表单参数和索引数据,生成至少两个表单数据包,每个表单数据包包括:根据表单参数生成的表单,以及与表单对应的索引数据;保存至少两个表单数据包,其中,在任意两个或多个表单数据包中包含的索引数据相同的情况下,仅保存其中一个表单数据包。

可选的,存储介质被设置为存储用于执行以下步骤的程序代码:调用表单渲染功能处理表单参数,生成访问表单请求对应的表单输入界面;通过表单输入界面接收表单内容,生成待提交的表单;将生成的表单以及所访问表单请求所对应索引数据组合成表单数据包,并发送表单数据包。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时, 可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read一Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1