本发明实施例涉及计算机数据处理技术领域,尤其涉及一种表单的提交方法及装置。
背景技术:
网站表单英文为“Web Forms”,在网页中主要负责数据采集功能,它将互联网用户通过文本域、复选框等空间输入的数据,发送到服务器进行处理。网站表单是网站数据录入的主要工具,在电子商务网站中,最典型的网站表单有注册表单、登录表单、购买表单和支付表单等。
在互联网应用中,由于网络延时,或者编程语言自身的不稳定,相同的表单常常被重复的提交至服务端。这种重复的提交不仅增加了网页服务器的运行负担,而且造成了客户本身的不安全。一旦,重复提交的表单被黑客截获,可能造成客户信息的不当流失。因此,表单的重复提交是网站的运维人员和普通客户都不愿意看到的现象。
技术实现要素:
针对上述技术问题,本发明实施例提供了一种表单的提交方法及装置,以防止相同的表单被重复的提交。
一方面,本发明实施例提供了一种表单的提交方法,所述方法包括:
获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息;
将所述检测令牌信息下发至客户端;
当再次获取到客户端上传的表单时,根据随所述表单上传的检测令牌信息验证所述表单是否为重复上传表单。
另一方面,本发明实施例还提供了一种表单的提交装置,所述装置包括:
生成模块,用于获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息;
下发模块,用于将所述检测令牌信息下发至客户端;
验证模块,用于当再次获取到客户端上传的新表单时,根据随所述新表单上传的检测令牌信息验证所述新表单是否为重复上传表单。
本发明实施例提供的表单的提交方法及装置,通过获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息,将所述检测令牌信息下发至客户端,当再次获取到客户端上传的表单时,根据随所述表单上传的检测令牌信息验证所述表单是否为重复上传表单,能够防止相同的表单被重复的提交。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是本发明第一实施例提供的表单的提交方法的流程图;
图2是本发明第二实施例提供的表单的提交方法中生成操作的流程图;
图3是本发明第三实施例提供的表单的提交装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
第一实施例
本实施例提供了表单的提交方法的一种技术方案。该技术方案由生成网页的服务端执行,并且,该技术方案优选通过诸如Javascript、ASP、JSP等动态网页语言实现。
参见图1,表单的提交方法包括:
S11,获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息。
这里提及的新表单可以是注册表单、登录表单、购买表单,或者支付表单。在获取客户端上传的新表单时,根据获取到新表单时的系统时间,生成检测令牌信息。
生成的检测令牌信息包括获取到新表单时的系统时间。进一步的,检测令牌信息是一个包含检测令牌信息的获取时间的字符串。这个字符串的前十二位是系统时间,后九位是一个1000000000以内的随机数。
优选的,生成检测令牌信息的动作还包括将生成的检测令牌信息在服务端本地,以令牌信息表的形式进行记录。
S12,将所述检测令牌信息下发至客户端。
优选的,可以将生成的检测令牌信息嵌入至响应页面中,以响应页面中的一个字段的形式下发至客户端。
作为另一种优选的实现方式,还可以将生成的检测令牌信息作为响应页面的URL中的一部分,下发至客户端。
再有,还可以将生成的检测令牌信息作为cookie中的内容,以cookie的形式将所述检测令牌信息下发至客户端。
S13,当再次获取到客户端上传的表单时,根据随所述表单上传的检测令牌信息验证所述表单是否为重复上传表单。
当服务端向客户端下发了检测令牌信息之后,客户端再次上传相同的表单时,表单信息的上传会绑定有对应的检测令牌信息。因此,利用对绑定的检测令牌信息的验证,就能够判定获取到的表单是否为重复上传表单。
优选的,对重复上传表单的判定是通过对预存的令牌信息表的信息匹配而实现的。具体的,将获取到的随表单上传的检测令牌信息与令牌信息表中预存的令牌信息进行匹配。如果上述信息匹配成功,则说明再次获取到的表单是重复上传的表单;如果上述信息匹配失败,则说明再次获取到的表单是新上传的表单。
本实施例通过获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息,将所述检测令牌信息下发至客户端,以及当再次获取到客户端上传的表单时,根据随所述表单上传的检测令牌信息验证所述表单是否为重复上传表单,避免了相同的表单信息被重复的提交。
第二实施例
本实施例提供了表单的提交方法中生成操作的一种技术方案。在该技术方案中,获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息包括:获取到客户端上传的新表单时,根据所述新表单的来源业务模块,生成所述新表单对应的公钥信息;生成所述公钥信息所对应的检测令牌信息;将所生成的检测令牌信息预存至令牌信息表。
参见图2,获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息包括:
S21,获取到客户端上传的新表单时,根据所述新表单的来源业务模块,生成所述新表单对应的公钥信息。
在电子商务平台上,服务端上运行有不同的业务模块。用户提交的不同的表单对应于不同的业务模块。例如,用户提交的注册表单对应于服务端上运行的注册模块,用户提交的购买表单对应于服务端上运行的交易模块等等。
不同的来源业务模块,在电子商务平台上对应于不同的公钥信息。这些公钥信息可以用来在其对应的业务模块中对用户数据进行加密,来提高用户数据的安全性。因此,公钥信息在电子商务平台上可以用来区别不同的业务模块。
优选的,对公钥信息的生成可以是依据各个业务模块对应的公钥信息池来生成。
S22,生成所述公钥信息所对应的检测令牌信息。
具体的,生成的检测令牌信息是根据获取到新表单的系统时间生成的。具体的,检测令牌信息可以是包含21个字符的字符串。该字符串的前12个字符是获取到新表单的系统时间,这个系统时间精确到分钟。后9个字符是随机生成的随机数。
S23,将所生成的检测令牌信息预存至令牌信息表。
可以理解的是,对检测令牌信息的预存动作也就是对令牌信息表的更新动作。经过对令牌信息表的更新操作之后,新生成的检测令牌信息被追加至服务端维护的令牌信息表中。
本实施例通过根据所述新表单的来源业务模块,生成所述新表单对应的公钥信息,生成所述公钥信息所对应的检测令牌信息,将所生成的检测令牌信息预存至令牌信息表,实现了检测令牌信息的生成。
第三实施例
本实施例提供了表单的提交装置的一种技术方案。在该技术方案中,所述表单的提交装置包括:生成模块31、下发模块32,以及验证模块33。
所述生成模块31用于获取到客户端上传的新表单的同时,根据所述新表单的获取时间,生成检测令牌信息。
所述下发模块32用于将所述检测令牌信息下发至客户端。
所述验证模块33用于当再次获取到客户端上传的新表单时,根据随所述新表单上传的检测令牌信息验证所述新表单是否为重复上传表单。
优选的,所述生成模块31包括:公钥生成单元、令牌生成单元,以及令牌预存单元。
所述公钥生成单元用于获取到客户端上传的新表单时,根据所述新表单的来源业务模块,生成所述新表单对应的公钥信息。
所述令牌生成单元用于生成所述公钥信息所对应的检测令牌信息。
所述令牌预存单元用于将所生成的检测令牌信息预存至令牌信息表。
优选的,所述公钥生成单元具体用于:根据所述新表单的来源业务模块,由公钥信息池生成所述新表单对应的公钥信息。
优选的,所述令牌生成单元具体用于:根据所述新表单的获取时间,以及获取新表单时生成的随机数,生成所述检测令牌信息。
优选的,所述验证模块33包括:匹配单元、第一判定单元,以及第二判定单元。
所述匹配单元用于根据随所述表单上传的检测令牌信息,对所述令牌信息表进行信息匹配。
所述第一判定单元用于若匹配成功,判定所述表单是重复上传表单。
所述第二判定单元用于若匹配失败,判定所述表单不是重复上传表单。
本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。