CN103312664A - 表单验证方法、装置和系统 - Google Patents
表单验证方法、装置和系统 Download PDFInfo
- Publication number
- CN103312664A CN103312664A CN2012100597418A CN201210059741A CN103312664A CN 103312664 A CN103312664 A CN 103312664A CN 2012100597418 A CN2012100597418 A CN 2012100597418A CN 201210059741 A CN201210059741 A CN 201210059741A CN 103312664 A CN103312664 A CN 103312664A
- Authority
- CN
- China
- Prior art keywords
- random parameter
- list
- hidden field
- client
- random
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012795 verification Methods 0.000 title abstract 5
- 238000004422 calculation algorithm Methods 0.000 claims description 56
- 230000000295 complement effect Effects 0.000 claims description 29
- 238000010200 validation analysis Methods 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 46
- 230000008569 process Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种表单验证方法、装置和系统,所述方法包括:接收到客户端的请求消息后,生成第一随机参数和第二随机参数;将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,以触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配,通过本申请实施例,实现了表单的有效验证。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种表单验证方法、装置和系统。
背景技术
表单是客户端与服务器,如web网页浏览器与web服务器之间进行数据交互的重要手段之一,其在客户端中负责数据采集。
表单通常包括表单域和表单按钮等组件,其中表单域由输入框,例如文本框和密码框等组成。为了数据传输的安全性,表单生成的同时还会生成预设名称的表单隐藏域,表单隐藏域为表单中不可见的元素,在表单提交时,即可将隐藏域的数值信息按照所设置好的名称发送至服务器。
在实际应用中,客户端接收到用户的获取表单请求时,生成表单,用户即可在表单输入框中填写数据,填写完成后通过表单按钮触发客户端将表单提交至服务器,服务器即可对表单数据进行处理。但是根据现有的这种表单应用的工作方式,服务器无法从提交的表单数据中判断出表单的填写者是否为真实的用户。因此,很多用户可以绕过表单的人工填写步骤,通过自动填写工具或者专门的机器人等自动填写程序,来抓取表单页面的信息,实现自动识别表单、批量注册、自动登录等,从而进行恶意论坛灌水、暴力破解密码、发布垃圾信息等操作。因此如何对表单进行验证,以判断表单填写者是否为真实用户成为目前表单应用中迫切需要解决的问题。
现有的一种表单验证方法是通过验证表单的隐藏域来实现的,表单隐藏域包括名称和数值,在一次表单应用中,服务器生成随机字符传递至客户端,触发客户端将随机字符作为表单隐藏域的数值,因此服务器接收到客户端提交的用户填写好的表单时,通过验证表单隐藏域的数值是否与生成的随机字符相匹配来实现对表单的验证。
但是由于客户端生成表单的同时即生成表单隐藏域,表单隐藏域的名称是预先设置好的,每次生成的表单隐藏域的名称均一样,恶意的自动填写程序通过多次抓取表单页面的信息,即可分析得出表单隐藏域的名称,也就可以对应获取隐藏域的数值,使得仍可识别表单从而进行表单自动填写,因此仍无法确定出表单的填写者是否为真实用户,不能实现表单的有效验证。
发明内容
本申请所要解决的技术问题是提供一种表单验证方法,用以解决现有技术中表单验证方法不能实现有效验证的技术问题。
本申请还提供了一种表单验证装置和系统,用以保证上述方法在实际中的实现及应用。
本发明一方面,提供了一种表单验证方法,包括:
接收到客户端的请求消息后,生成第一随机参数和第二随机参数;
将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,以触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
优选地,所述触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:
触发所述客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
则所述验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配具体为:
验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相同。
优选地,所述生成所述第二随机参数后,所述方法还包括:
将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端根据所述预定义算法和所述第二随机参数生成所述验证字符;
则所述验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配具体为:
验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
优选地,所述第一触发信息还包含定义的变量,则所述触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值,具体为:
触发所述客户端将生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
优选地,所述方法还包括:
生成第三随机参数,并将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名;
则所述触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中具体为:
触发所述客户端将调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称的表单隐藏域加入到表单中。
优选地,所述触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名具体为:
触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名,并将所述表单隐藏域生成函数进行混淆处理。
优选地,所述将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端的同时,所述方法还包括:
向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
优选地,所述触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:
触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
优选地,所述生成第一随机参数和第二随机参数具体是:
将随机生成的两个字符分别进行加密后,形成第一随机参数和第二随机参数。
本发明又一方面,提供了一种表单验证装置,包括:
生成单元,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数;
第一触发单元,用于将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
验证单元,用于接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
优选地,所述第一触发单元触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:触发所述客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
则所述验证单元具体用于验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相同。
优选地,所述装置还包括:
加密反馈单元,用于将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端根据所述预定义算法和所述第二随机参数生成所述验证字符;
则所述验证单元具体用于验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
优选地,所述第一触发信息还包含定义的变量,则所述第一触发单元具体用于触发所述客户端将生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
优选地,所述生成单元还用于生成第三随机参数,则所述装置还包括:
第二触发单元,用于将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名;
则所述第一触发单元具体用于触发所述客户端将通过调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称的表单隐藏域加入到表单中。
优选地,所述装置还包括:
第三触发单元,用于向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
优选地,所述第一触发单元触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体是触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
本发明又一方面,提供一种表单验证系统,包括客户端和服务器,
所述客户端,用于向所述服务器发送请求消息;根据所述服务器发送的携带第一随机参数和所述第二随机参数的第一触发信息,将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;提交所述加入表单隐藏域的表单至所述服务器;
所述服务器,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数;将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
与现有技术相比,本申请包括以下优点:
在本申请中,当接收到客户端的请求消息后,生成第一随机参数和第二随机参数,并向客户端发送第一触发信息,触发客户端将生成的以第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定的验证字符赋值给所述表单隐藏域,作为隐藏域的数值。当接收到客户端提交的加入所述表单隐藏域的表单时,验证第一随机参数对应的表单隐藏域的数值与第二随机参数是否相匹配,从而实现表单的验证,由于每次生成表单时,表单隐藏域的名称以及数值都是变化的,自动填写程序由于无法获知隐藏域名称,因此也就不能获知隐藏域的数值,无法成功自动填写表单。当确定出隐藏域的数值与第二随机参数不匹配时,就不会对该表单进行处理,从而实现了表单的有效验证。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一种表单验证方法实施例1的流程图;
图2是本申请中一种表单验证方法实施例2的流程图;
图3是本申请中一种表单验证方法实施例3的流程图;
图4是本申请中一种表单验证装置实施例1的结构示意图;
图5是本申请中一种表单验证装置实施例2的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算装置环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请的主要思想之一可以包括,服务器接收到客户端的请求消息后,生成第一随机参数和第二随机参数,并向客户端发送第一触发信息,触发客户端将生成的以第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定的验证字符赋值给所述表单隐藏域,作为隐藏域的数值。服务器接收到客户端提交的加入所述表单隐藏域的表单时,验证第一随机参数对应的表单隐藏域的数值与第二随机参数是否相匹配,从而实现表单的验证,由于每次生成表单时,表单隐藏域的名称以及数值都是变化的,自动填写程序由于无法获知隐藏域名称,因此也就不能获知隐藏域的数值,无法成功自动填写表单。当确定出隐藏域的数值与第二随机参数不匹配时,服务器就不会对该表单进行处理,从而实现了表单的有效验证。
参考图1,示出了本申请一种表单验证方法实施例1的流程图,可以包括以下步骤:
步骤101:接收到客户端的请求消息后,生成第一随机参数和第二随机参数。
用户通过客户端的用户界面请求获取表单时,客户端即会生成相应的表单,并向服务器发送请求消息,服务器即接收该客户端发送的请求消息。所述表单例如可以是注册/登录表单,或者贴吧网站中的发帖表单等。
所述第一随机参数和第二随机参数可以是随机生成的两个字符,将其中一个字符作为第一随机参数,另一字符作为第二随机参数。
其中,为了增强信息的安全性,防止被窃取,所述的第一随机参数和第二随机参数可以是随机生成的字符进行加密后所形成的,例如可以是通过密钥算法加密形成的随机密钥,具体的,服务器接收到客户端的请求消息后,随机生成字符a和b,分别根据字符a和b,以及站点密钥和/或时间戳等信息通过加密算法生成密钥A和B,分别作为第一随机参数和第二随机参数。所述站点密钥可以是指用户当前登录网站的唯一识别码;时间戳例如可以为Unix时间戳,用于表示时间;所述加密算法可以采用MD5(Message Digest Algorithm MD5,消息摘要算法第五版)算法,当然还可以采用其他的加密算法,此外,为了增加加密的复杂度,所述加密算法还可以采用通过服务器端执行的脚本语言,例如PHP(HypertextPreprocessor,超级文本预处理语言),自定义的加密算法,因此增加了算法复杂度,使得不容易被破解。
步骤102:将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,以触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
生成第一随机参数和第二随机参数后,服务器可以将所述第一随机参数定义为表单隐藏域的名称,并定义表单隐藏域的数值相关信息,向客户端发送第一触发信息,所述第一触发信息即会触发客户端执行相应的操作。
具体的,所述的第一触发信息可以包括生成表单隐藏域的执行代码。服务器根据所述第一随机参数和第二随机参数生成表单隐藏域的执行代码,客户端接收到第一触发信息后,运行所述执行代码的过程,即是生成以第一随机参数为名称的表单隐藏域,将其加入到表单,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值的过程。
客户端生成表单隐藏域具体是通过调用表单隐藏域生成函数来生成的。为了避免恶意程序截取客户端的页面代码,进行分析出表单隐藏域的内容,服务器可以触发客户端将表单隐藏域生成函数以及其他的执行代码进行混淆处理,即代码混淆,使得混淆处理后的代码即便被截取,用户也无法识别。
其中,触发客户端将表单隐藏域加入到表单中,即是触发客户端将生成的表单隐藏域插入表单页面中,当客户端提交表单时,表单隐藏域即会一同被提交。
另外,为了进一步实现表单的有效验证,所述触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值可以具体是:
触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
表单隐藏域包括名称和数值,服务器向客户端发送第一触发信息,触发客户端将生成的以第一随机参数为名称的表单隐藏域加入到表单中,并不立即为所述表单隐藏域赋值,而是触发客户端在检测到有赋值事件时在进行赋值操作。
该赋值事件是指真实用户执行操作时所触发的事件,例如所述赋值事件可以是鼠标移动事件,真实用户在填写表单过程中,需要操作鼠标,使得鼠标光标在客户端的显示界面移动,客户端检测到该鼠标移动事件时,表明表单填写者为真实的用户,因此再对所述表单隐藏域赋值。从而使得即便第一随机参数和第二随机参数被获取后,仍不能实现表单隐藏域的正确赋值。
当然所述的赋值事件还可以是键盘操作事件等可以区分真实用户与自动填写程序所执行的表单操作的事件。
步骤103:接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
客户端接收到表单提交请求时,即将加入所述表单隐藏域的表单提交至服务器,所述表单提交请求可以是用户填写完表单后通过客户端界面的表单提交按钮后触发客户端提交的,也可能是自动填写程序来触发客户端提交的。
服务器接收到所述加入表单隐藏域的表单后,由于是由服务器触发客户端生成的以第一随机参数为名称的表单隐藏域,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,因此在接收到客户端提交的表单后,为实现对表单的验证,服务器首先确定出其生成的第一随机参数对应的表单隐藏域,然后验证该表单隐藏域的数值与其生成的第二随机参数是否相匹配。由于在一次表单获取到提交的过程中,服务器均会生成第一随机参数和第二随机参数,因此使得每次获取的表单所加入的表单隐藏域的名称是不一样的,数值也是变化的,使得自动填写程序无法获知表单隐藏域的名称,也就无法分析出表单隐藏域的数值,而隐藏域的数值是服务器触发客户端将根据第二随机参数确定的验证字符赋值给表单隐藏域的,因此服务器验证出第一随机参数对应的表单隐藏域的数值与所述第二随机参数不相匹配,即认为当前提交的表单并不是真实用户所填写的表单,即可将其舍弃,不做后续处理。而如果相匹配则表明当前提交的表单是真实用户所填写的表单,则根据表单所填写的内容进行处理,例如进行身份验证,将登录信息反馈给客户端;触发客户端发布表单信息等。
其中,所述验证该表单隐藏域的数值与其生成的第二随机参数是否相匹配一种可能的情况为:服务器触发客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值,因此服务器验证表单隐藏域的数值与第二随机参数是否相匹配具体是验证表单隐藏域的数值与第二随机参数是否相同,如果相同,则验证通过,表明当前提交的表单为真实用户所填写的表单,如果不相同,表明当前提交的表单可能为恶意的自动填写程序所填写,验证不通过。
另一种情况为:为了避免服务器和客户端之间的传递信息被恶意截取识别,服务器生成第二随机参数后,所述方法还可以包括:
将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端可以根据所述预定义算法和所述第二随机参数生成所述验证字符。则服务器在验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配具体为:验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
所述预定义的算法可以采用MD5等常用的加密算法,优选地可以采用通过自定义的其他加密算法。客户端接收到加密信息后,可以根据相同的预定义算法将第二随机参数进行加密以生成相同的验证字符。所述客户端采用的预定义算法可以是客户端预先编译并保存的,在接收到加密信息后,可对应查找加密信息对应的预定义算法;还可以是在接收到加密信息,根据所述加密信息生成的预定义算法,当服务器采用的预定义算法为通过服务器执行的脚本语言自定义的预定义算法时,则所述加密信息是用于触发客户端生成通过客户端执行的脚本语言,例如Javascript,自定义的所述预定义算法,其中,在程序设计过程中,所述的加密信息可以是相应的执行代码,客户端执行所述执行代码即会生成所述预定义算法,并利用所述预定义算法将第二随机参数进行加密以生成相同的验证字符。
所述根据第二随机参数生成验证字符的过程可以具体是将第二随机参数以及站点密钥、时间戳等信息,通过所述预定义算法来生成验证字符,以增加验证字符的复杂度,使得不容易被破解。
另外,服务器生成验证字符后是将其保存在服务器的存储区域,具体可以是保存在session中,并设置验证字符过期时间,当在过期时间内未接收到客户端提交的加入表单隐藏域的表单,即可直接判定表单验证不通过。
在本实施例中,服务器接收到客户端的请求消息后,生成第一随机参数和第二随机参数,向客户端发送第一触发信息,触发客户端将生成的以第一随机参数为名称的隐藏域加入到表单中,并将根据所述第二随机参数确定的验证字符赋值给所述表单隐藏域,作为隐藏域的数值。当客户端提交所述加入表单隐藏域的表单至服务器时,服务器确定出对应第一随机参数的表单隐藏域,然后再验证该表单隐藏域的数值与第二随机参数是否相匹配,从而实现表单的验证,由于每次生成表单时,表单隐藏域的名称以及数值都是变化的,自动填写程序由于无法获知隐藏域名称,因此也就不能获知隐藏域的数值,无法成功自动填写表单。当服务器确定出隐藏域的数值与第二随机参数不匹配时,就不会对该表单进行处理,从而实现了表单的有效验证。
参考图2,示出了本申请一种表单验证方法实施例2的流程图,该方法可以包括:
步骤201:接收到客户端的请求消息后,生成第一随机参数和第二随机参数。
步骤202:生成第三随机参数,并将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名。
客户端生成表单隐藏域具体是通过调用表单隐藏域生成函数来生成的。本实施例中,由服务器定义表单隐藏域生成函数的函数名,触发客户端将所述第三随机参数作为表单隐藏域生成函数的函数名。
其中,服务器还可以触发客户端将所述表单隐藏域生成函数进行混淆处理,使得可以保护函数程序。
所述第三随机参数可以是服务器生成的随机字符,优选地,还可以是服务器将生成的随机字符通过加密算法进行加密后形成的。
步骤203:将携带所述第一随机参数、所述第二随机参数以及定义的变量的第一触发信息发送给所述客户端,触发所述客户端将调用以所述第三随机参数命名的表单隐藏域生成函数生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
由于服务器发送的第一触发信息包括定义第一随机参数为表单隐藏域的名称,以及根据第二随机参数定义表单隐藏域数值的信息。为了进一步避免信息截获并被破解,服务器具体的是定义生成的变量作为表单隐藏域的临时数值,因此服务器具体是触发客户端生成以第一随机参数为名称,以变量为临时数值的表单隐藏域,表单隐藏域的赋值过程也即是将根据所述第二随机参数确定出的验证字符赋值给所述变量的过程。
服务器向客户端发送第一触发信息后,触发客户端调用以所述第三随机参数命名的表单隐藏域生成函数,生成以所述第一随机参数为名称,以变量为临时数值的表单隐藏域。因此即便自动填写程序可以获取该表单隐藏域,但是无法得到该表单隐藏域的实际数值,从而增加了安全性。
触发客户端将根据所述第二随机参数确定出的验证字符赋值给所述变量具体可以是触发客户端在检测到有赋值事件后,将根据所述第二随机参数确定出的验证字符赋值给所述变量。
步骤204:向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
服务器触发客户端生成表单隐藏域的同时,向所述客户端发送随机隐藏域触发信息,触发客户端生成多个随机隐藏域加入到表单中,以实现对步骤203中生成的表单隐藏域的混淆作用,使得即便自动填写程序可以获取到隐藏域,也无法确定出哪一个是作为表单验证用的表单隐藏域,从而无法确定隐藏域的名称和数值,不能实现表单的成功填写。
随机隐藏域的具体生成过程与所述表单隐藏域的生成过程相似,服务器可以定义随机变量作为随机隐藏域的临时数值,触发客户端生成以随机字符为名称,以随机变量为临时数值的表单隐藏域,所述随机字符可以是服务器生成的,也可以是触发客户端生成的。
步骤205:接收到客户端提交的加入所述表单隐藏域以及随机隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
由于客户端提交的表单中包含表单隐藏域和随机隐藏域,因此服务器根据隐藏域的名称确定出所述第一随机参数对应的隐藏域,即所述表单隐藏域,从而可对所述表单隐藏域进行验证。
需要说明的是,本实施例与上述方法实施例1中相同或者相似的步骤可以互相参见,在此不再一一赘述。
在本实施例中,服务器生成第一随机参数,第二随机参数以及第三随机参数,并触发客户端将所述第三随机参数作为表单隐藏域的生成函数的函数名,并调用所述以第三随机参数为函数名的生成函数生成以第一随机参数为名称,以服务器定义的变量为临时数值的表单隐藏域加入到表单中,并将根据第二随机参数确定的验证字符赋值给所述变量。同时服务器触发客户端生成多个以随机字符为名称的随机隐藏域,实现对表单隐藏域的混淆作用。通过本实施例进一步避免了表单隐藏域被截获而被恶意利用的风险,从而可以实现表单的有效验证,能够有效判断出表单填写者是否为真实的用户,从而可以避免恶意论坛灌水、暴力破解密码、发布垃圾信息等操作。
参考图3,示出了本申请一种表单验证方法实施例3的流程图,该方法可以包括:
步骤301:客户端接收到表单获取请求后,生成表单,并向服务器发送请求消息。
步骤302:服务器接收到所述请求消息后,生成第一随机参数、第二随机参数以及第三随机参数,并向客户端发送携带第一随机参数、第二随机参数以及定义的变量的第一触发信息,以及携带第三随机参数的第二触发信息。
步骤303:客户端根据所述第二触发信息后,将所述第三随机参数作为表单隐藏域生成函数的函数名。
步骤304:客户端根据所述第一触发信息,调用以所述第三随机参数命名的表单隐藏域生成函数生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域,并加入到表单中。
步骤305:客户端根据所述第一触发信息,在检测到赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述变量。
步骤306:服务器向客户端发送随机隐藏域触发信息。
步骤307:客户端根据所述随机隐藏域触发信息,生成多个以随机字符为名称的随机隐藏域加入到表单中。
步骤308:客户端接收到表单提交请求后,将所述加入表单隐藏域和随机隐藏域的表单提交至服务器。
步骤309:服务器接收到所述表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
在本实施例中,通过服务器与客户端的交互,客户端每次生成的表单所加入的表单隐藏域的名称以及数值是变化的,因此使得自动填写程序无法截获并恶意利用表单隐藏域,避免了在表单存在表单隐藏域的情况下,仍可能被自动填写程序自动的风险,从而可以实现表单的有效验证。由于表单能够有效验证,也减少了服务器处理表单的步骤,提供了服务器的性能。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参见图4,示出了本申请一种表单验证装置实施例1的结构示意图,该装置可以包括:
生成单元401,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数。
所述第一随机参数和第二随机参数可以是生成单元随机生成的两个字符,将其中一个字符作为第一随机参数,另一字符作为第二随机参数。
此外,为了增强信息的安全性,所述生成单元具体用于接收到客户端的请求消息后,将随机生成的两个字符分别进行加密后,形成第一随机参数和第二随机参数。所述加密算法可以采用MD5算法,当然还可以采用其他的加密算法,此外,为了增加加密的复杂度,所述加密算法还可以采用通过服务器执行的脚本语言自定义的加密算法可以增加算法复杂度,使得不容易被破解。
第一触发单元402,用于将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
所述第一触发单元触发客户端生成表单隐藏域具体是触发客户端通过调用表单隐藏域生成函数来生成的。为了避免自动填写程序截取客户端的页面代码,进行分析出表单隐藏域的内容,所述装置还可以触发客户端将表单隐藏域生成函数以及其他的执行代码进行混淆处理,即代码混淆,使得混淆处理后的代码即便被截取,用户也无法识别。
另外,为了进一步实现表单的有效验证,所述第一触发单元触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值可以具体是触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
该赋值事件是指真实用户执行操作时所触发的事件,例如所述赋值事件可以是鼠标移动事件,真实用户在填写表单过程中,需要操作鼠标,使得鼠标光标在客户端的显示界面移动,客户端检测到该鼠标移动事件时,表明表单填写者为真实的用户,因此再对所述表单隐藏域赋值。从而使得即便第一随机参数和第二随机参数被获取后,仍不能实现表单隐藏域的正确赋值。
当然所述的赋值事件还可以是键盘操作事件等可以区分真实用户与自动填写程序所执行的表单操作的事件。
验证单元403,用于接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
作为一个实施例,所述验证单元验证该表单隐藏域的数值与其生成的第二随机参数是否相匹配一种可能的情况为:所述第一触发单元具体是触发客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。因此,所述验证单元具体是验证表单隐藏域的数值与第二随机参数是否相匹配具体是验证表单隐藏域的数值与第二随机参数是否相同,如果相同,则验证通过,表明当前提交的表单为真实用户所填写的表单,如果不相同,表明当前提交的表单可能为恶意的自动填写程序所填写,验证不通过。
作为另一个实施例,为了避免信息传递过程中被恶意截取识别,所述装置还可以包括:
加密反馈单元,用于将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端根据所述预定义算法和所述第二随机参数生成所述验证字符。
则所述验证单元具体用于验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
所述预定义的算法可以采用MD5等常用的加密算法,优选地可以采用自定义的其他加密算法。客户端接收到加密信息后,可以根据相同的预定义算法将第二随机参数进行加密以生成相同的验证字符。所述客户端采用的预定义算法可以是客户端预先编译并保存的,在接收到加密信息后,可对应查找加密信息对应的预定义算法;还可以是在接收到加密信息,根据所述加密信息生成的预定义算法,当服务器采用的预定义算法为通过服务器执行的脚本语言自定义的预定义算法时,则所述加密信息是用于触发客户端生成通过客户端执行的脚本语言,例如Javascript,自定义的所述预定义算法,其中,在程序设计过程中,所述的加密信息可以是相应的执行代码,客户端执行所述执行代码即会生成预定义算法,并利用所述预定义算法将第二随机参数进行加密以生成相同的验证字符。
所述根据第二随机参数生成验证字符的过程可以具体是将第二随机参数以及站点密钥、时间戳等信息,通过所述预定义算法来生成验证字符,以增加验证字符的复杂度,使得不容易被破解。
在本实施例中,生成单元接收到客户端的请求消息后,生成第一随机参数和第二随机参数,由第一触发单元触发客户端将生成的以第一随机参数为名称的隐藏域加入到表单中,并将根据所述第二随机参数确定的验证字符赋值给所述隐藏域,作为隐藏域的数值。当客户端提交所述表单至服务器时,验证单元确定出对应第一随机参数的隐藏域,然后再验证该隐藏域的数值与第二随机参数是否相匹配,从而实现表单的验证,由于每次生成表单时,表单隐藏域的名称以及数值都是变化的,自动填写程序由于无法获知隐藏域名称,因此也就不能获知隐藏域的数值,无法成功自动填写表单。当确定出隐藏域的数值与第二随机参数不匹配时,就不会对该表单进行处理,从而实现了表单的有效验证。
本实施例所述的装置可以集成到用于表单服务器上,也可以单独作为一个实体与表单服务器相连,另外,需要说明的是,当本申请所述的方法采用软件实现时,可以作为表单服务器新增的一个功能,也可以单独编写相应的程序,本申请不限定所述方法或装置的实现方式。所述的表单服务器具体可以是web服务器。
参见图5,示出了本申请一种表单验证装置实施例2的结构示意图,该装置可以包括:
生成单元501:用于接收到客户端的请求消息后,生成第一随机参数、第二随机参数和第三随机参数。
第二触发单元502:用于将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名。
具体的,所述第三触发单元还用于触发所述客户端将所述表单隐藏域生成函数进行混淆处理,使得可以保护函数程序。
所述第三随机参数可以是服务器生成的随机字符,优选地,还可以是生成单元将生成的随机字符通过加密算法进行加密后形成的。
第一触发单元503:用于将携带所述第一随机参数、所述第二随机参数的第一触发信息发送给所述客户端,触发所述客户端将通过调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称的表单隐藏域加入到表单中。
其中,所述第一触发单元发送的第一触发信息中还可以包括定义的变量,则所述第一触发单元具体用于触发客户端将通过调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
通过将变量作为临时数值,即便自动填写程序可以获取该表单隐藏域,但是无法得到该表单隐藏域的实际数值,从而增加了安全性。
第三触发单元504:向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
所述第三触发单元触发客户端生成的随机隐藏域,实现了对表单隐藏域的混淆作用,使得即便自动填写程序可以获取到隐藏域,也无法确定出哪一个是作为表单验证用的表单隐藏域,从而无法确定隐藏域的名称和数值,不能实现表单的成功填写。
验证单元505:用于接收到客户端提交的加入所述表单隐藏域以及随机隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
由于客户端提交的表单中包含表单隐藏域和随机隐藏域,因此验证单元根据隐藏域的名称确定出所述第一随机参数对应的隐藏域,即所述表单隐藏域,从而可对所述表单隐藏域进行验证。
在本实施例中,生成单元生成第一随机参数,第二随机参数以及第三随机参数,第二触发单元触发客户端将所述第三随机参数作为表单隐藏域的生成函数的函数名,第一触发单元触发客户端调用所述以第三随机参数为函数名的生成函数生成以第一随机参数为名称,以服务器定义的变量为临时数值的表单隐藏域加入到表单中,并将根据第二随机参数确定的验证字符赋值给所述变量。同时第三触发单元触发客户端生成多个以随机字符为名称的随机隐藏域,实现对表单隐藏域的混淆作用。通过本实施例进一步避免了表单隐藏域被截获而被恶意利用的风险,从而可以实现表单的有效验证,能够有效判断出表单填写者是否为真实的用户,从而可以避免恶意论坛灌水、暴力破解密码、发布垃圾信息等操作。
与上述本申请一种表单验证方法和装置实施例相对应,本申请还提供了一种表单验证系统的实施例,在本实施例中,该系统具体可以包括客户端和服务器,
所述客户端,用于向所述服务器发送请求消息;根据所述服务器发送的携带第一随机参数和所述第二随机参数的第一触发信息,将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;提交所述加入表单隐藏域的表单至所述服务器;
所述服务器,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数;将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
通过本实施例所述的服务器和客户端,可以有效实现表单的验证,从而可以避免恶意论坛灌水、暴力破解密码、发布垃圾信息等操作。服务器在验证出表单隐藏域的数值与第二随机参数不匹配时,即该表单验证不通过时,服务器即不会对该表单进行处理,因此可以减少服务器的操作步骤,可以提高服务器的处理性能。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种检索方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (17)
1.一种表单验证方法,其特征在于,包括:
接收到客户端的请求消息后,生成第一随机参数和第二随机参数;
将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,以触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
2.根据权利要求1所述的方法,其特征在于,所述触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:
触发所述客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
则所述验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配具体为:
验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相同。
3.根据权利要求1所述的方法,其特征在于,所述生成所述第二随机参数后,所述方法还包括:
将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端根据所述预定义算法和所述第二随机参数生成所述验证字符;
则所述验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配具体为:
验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
4.根据权利要求1所述的方法,其特征在于,所述第一触发信息还包含定义的变量,则所述触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值,具体为:
触发所述客户端将生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成第三随机参数,并将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名;
则所述触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中具体为:
触发所述客户端将调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称的表单隐藏域加入到表单中。
6.根据权利要求5所述的方法,其特征在于,所述触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名具体为:
触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名,并将所述表单隐藏域生成函数进行混淆处理。
7.根据权利要求1所述的方法,其特征在于,所述将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端的同时,所述方法还包括:
向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
8.根据权利要求1所述的方法,其特征在于,所述触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:
触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
9.根据权利要求1所述的方法,其特征在于,所述生成第一随机参数和第二随机参数具体是:
将随机生成的两个字符分别进行加密后,形成第一随机参数和第二随机参数。
10.一种表单验证装置,其特征在于,包括:
生成单元,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数;
第一触发单元,用于将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,触发所述客户端将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
验证单元,用于接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
11.根据权利要求10所述的装置,其特征在于,所述第一触发单元触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体为:触发所述客户端将所述第二随机参数作为验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;
则所述验证单元具体用于验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相同。
12.根据权利要求10所述的装置,其特征在于,还包括:
加密反馈单元,用于将所述第二随机参数通过预定义算法进行加密生成验证字符,并向客户端反馈加密信息,以便于所述客户端根据所述预定义算法和所述第二随机参数生成所述验证字符;
则所述验证单元具体用于验证所述第一随机参数对应的表单隐藏域的数值与所述根据所述第二随机参数生成的验证字符是否相同。
13.根据权利要求10所述的装置,其特征在于,所述第一触发信息还包含定义的变量,则所述第一触发单元具体用于触发所述客户端将生成的以所述第一随机参数为名称,以变量为临时数值的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述变量。
14.根据权利要求10所述的装置,其特征在于,所述生成单元还用于生成第三随机参数,则所述装置还包括:
第二触发单元,用于将携带所述第三随机参数的第二触发信息发送给客户端,以触发所述客户端将所述第三随机参数作为表单隐藏域生成函数的函数名;
则所述第一触发单元具体用于触发所述客户端将通过调用以所述第三随机参数命名的表单隐藏域生成函数,生成的以所述第一随机参数为名称的表单隐藏域加入到表单中。
15.根据权利要求10所述的装置,其特征在于,还包括:
第三触发单元,用于向所述客户端发送随机隐藏域触发信息,以触发所述客户端将生成的多个以随机字符为名称的随机隐藏域加入到表单中。
16.根据权利要求10所述的装置,其特征在于,所述第一触发单元触发所述客户端将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值具体是触发所述客户端在检测到有赋值事件时,将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值。
17.一种表单验证系统,其特征在于,包括客户端和服务器,
所述客户端,用于向所述服务器发送请求消息;根据所述服务器发送的携带第一随机参数和所述第二随机参数的第一触发信息,将生成的以所述第一随机参数为名称的表单隐藏域加入到表单中,并将根据所述第二随机参数确定出的验证字符赋值给所述表单隐藏域,作为表单隐藏域的数值;提交所述加入表单隐藏域的表单至所述服务器;
所述服务器,用于接收到客户端的请求消息后,生成第一随机参数和第二随机参数;将携带所述第一随机参数和所述第二随机参数的第一触发信息发送给所述客户端,接收到客户端提交的加入所述表单隐藏域的表单后,验证所述第一随机参数对应的表单隐藏域的数值与所述第二随机参数是否相匹配。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210059741.8A CN103312664B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
CN201710218281.1A CN107451472B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
TW101121116A TWI587679B (zh) | 2012-03-08 | 2012-06-13 | Form validation methods, devices and systems |
US13/787,259 US9444910B2 (en) | 2012-03-08 | 2013-03-06 | Validation associated with a form |
JP2014561112A JP5868529B2 (ja) | 2012-03-08 | 2013-03-07 | フォームに関係する検証 |
PCT/US2013/029631 WO2013134512A1 (en) | 2012-03-08 | 2013-03-07 | Validation associated with a form |
EP13711220.7A EP2823431B1 (en) | 2012-03-08 | 2013-03-07 | Validation associated with a form |
US15/233,672 US10122830B2 (en) | 2012-03-08 | 2016-08-10 | Validation associated with a form |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210059741.8A CN103312664B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218281.1A Division CN107451472B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103312664A true CN103312664A (zh) | 2013-09-18 |
CN103312664B CN103312664B (zh) | 2017-06-09 |
Family
ID=49115050
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218281.1A Active CN107451472B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
CN201210059741.8A Expired - Fee Related CN103312664B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218281.1A Active CN107451472B (zh) | 2012-03-08 | 2012-03-08 | 表单验证方法、装置和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9444910B2 (zh) |
EP (1) | EP2823431B1 (zh) |
JP (1) | JP5868529B2 (zh) |
CN (2) | CN107451472B (zh) |
TW (1) | TWI587679B (zh) |
WO (1) | WO2013134512A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501304A (zh) * | 2013-10-12 | 2014-01-08 | 深信服网络科技(深圳)有限公司 | 控制web系统越权访问的方法及装置 |
CN104486342A (zh) * | 2014-12-19 | 2015-04-01 | 山东中创软件商用中间件股份有限公司 | 一种隐藏表单防护方法、装置、服务器和网购平台 |
CN106161466A (zh) * | 2016-08-30 | 2016-11-23 | 迈普通信技术股份有限公司 | Web服务器及表单提交安全交互方法 |
CN109891415A (zh) * | 2016-11-28 | 2019-06-14 | 国际商业机器公司 | 针对未经授权的客户端应用程序保护Web服务器 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411958B2 (en) * | 2014-05-23 | 2016-08-09 | Shape Security, Inc. | Polymorphic treatment of data entered at clients |
US20160292143A1 (en) * | 2015-04-01 | 2016-10-06 | RTO Benefits, LLC | System and method for automated online wizard generation |
CN105592060B (zh) * | 2015-10-26 | 2018-11-09 | 新华三技术有限公司 | 一种密码生成方法及设备 |
CN106921645B (zh) * | 2016-06-28 | 2021-04-20 | 创新先进技术有限公司 | 信息发布方法、客户端及服务端 |
CN106657310B (zh) * | 2016-12-13 | 2020-04-07 | 北京锐安科技有限公司 | 表单的提交方法及装置 |
US11379530B2 (en) | 2017-01-31 | 2022-07-05 | Splunk Inc. | Leveraging references values in inverted indexes to retrieve associated event records comprising raw machine data |
US10474674B2 (en) | 2017-01-31 | 2019-11-12 | Splunk Inc. | Using an inverted index in a pipelined search query to determine a set of event data that is further limited by filtering and/or processing of subsequent query pipestages |
CN108804316A (zh) * | 2018-05-24 | 2018-11-13 | 郑州云海信息技术有限公司 | 一种测试脚本程序标准化的检验方法及系统 |
CN111078206B (zh) * | 2019-11-25 | 2023-03-24 | 贝壳技术有限公司 | 表单提交方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431413A (zh) * | 2007-11-08 | 2009-05-13 | 华为技术有限公司 | 进行认证的方法、系统、服务器及终端 |
CN101431410A (zh) * | 2007-11-09 | 2009-05-13 | 康佳集团股份有限公司 | 一种网络游戏客户端与服务器集群的认证方法 |
US20100287132A1 (en) * | 2009-05-05 | 2010-11-11 | Paul A. Lipari | System, method and computer readable medium for recording authoring events with web page content |
US20100332487A1 (en) * | 2008-02-19 | 2010-12-30 | Nec Corporation | Pattern verification apparatus, pattern verification method, and program |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7284193B1 (en) * | 1998-12-31 | 2007-10-16 | Microsoft Corporation | Page object model |
US7934149B1 (en) * | 1999-09-30 | 2011-04-26 | Instantis, Inc. | Automated creation and maintenance of programs to process internet form related submissions |
JP2002073551A (ja) | 2000-08-26 | 2002-03-12 | Sekiya Yamashita | フレームを利用したインターネット情報保管システム |
US20020178187A1 (en) * | 2000-12-20 | 2002-11-28 | Rasmussen Brett D. | Electronically signed HTML forms |
US6874120B2 (en) | 2001-04-05 | 2005-03-29 | International Business Machines Corporation | Method, system, and product for efficient retrieval of information related to data input into a data entry form from the data entry form |
JP2004334859A (ja) | 2003-04-14 | 2004-11-25 | Matsushita Electric Ind Co Ltd | 異なる複数のオペレータによって使用される情報処理装置、その方法、及びプログラム |
JP2007272574A (ja) | 2006-03-31 | 2007-10-18 | Nec Corp | 掲示板システムおよびその不正投稿防止方法 |
US9130974B2 (en) * | 2007-04-18 | 2015-09-08 | Mcafee, Inc. | System and method for limiting spyware activity |
US8219687B2 (en) | 2008-01-04 | 2012-07-10 | International Business Machines Corporation | Implementing browser based hypertext transfer protocol session storage |
US8745101B2 (en) * | 2008-02-11 | 2014-06-03 | Lg Electronics Inc. | Terminal and method for identifying contents |
CN101482820A (zh) * | 2009-02-13 | 2009-07-15 | 山东浪潮齐鲁软件产业股份有限公司 | 一种防止页面重复提交的方法 |
US9507870B2 (en) * | 2009-05-05 | 2016-11-29 | Suboti, Llc | System, method and computer readable medium for binding authored content to the events used to generate the content |
US9105027B2 (en) | 2009-05-15 | 2015-08-11 | Visa International Service Association | Verification of portable consumer device for secure services |
US20100318889A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Automatic Insertion of Data from Web Forms into Documents |
CN101924734A (zh) * | 2009-06-15 | 2010-12-22 | 北京华智大为科技有限公司 | 一种基于Web表单的身份认证方法及认证装置 |
US20100328074A1 (en) | 2009-06-30 | 2010-12-30 | Johnson Erik J | Human presence detection techniques |
RU2012122806A (ru) * | 2009-11-04 | 2013-12-10 | Виза Интернэшнл Сервис Ассосиэйшн | Проверка подлинности портативных бытовых устройств для реализирующих принцип трехдоменной защиты услуг |
US8539224B2 (en) * | 2009-11-05 | 2013-09-17 | International Business Machines Corporation | Obscuring form data through obfuscation |
CN102238150A (zh) * | 2010-05-06 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 表单注册方法及服务器 |
US9021586B2 (en) * | 2010-07-20 | 2015-04-28 | At&T Intellectual Property I, L.P. | Apparatus and methods for preventing cross-site request forgery |
US9401807B2 (en) * | 2011-02-03 | 2016-07-26 | Hewlett Packard Enterprise Development Lp | Processing non-editable fields in web pages |
-
2012
- 2012-03-08 CN CN201710218281.1A patent/CN107451472B/zh active Active
- 2012-03-08 CN CN201210059741.8A patent/CN103312664B/zh not_active Expired - Fee Related
- 2012-06-13 TW TW101121116A patent/TWI587679B/zh not_active IP Right Cessation
-
2013
- 2013-03-06 US US13/787,259 patent/US9444910B2/en active Active
- 2013-03-07 EP EP13711220.7A patent/EP2823431B1/en active Active
- 2013-03-07 WO PCT/US2013/029631 patent/WO2013134512A1/en active Application Filing
- 2013-03-07 JP JP2014561112A patent/JP5868529B2/ja active Active
-
2016
- 2016-08-10 US US15/233,672 patent/US10122830B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431413A (zh) * | 2007-11-08 | 2009-05-13 | 华为技术有限公司 | 进行认证的方法、系统、服务器及终端 |
CN101431410A (zh) * | 2007-11-09 | 2009-05-13 | 康佳集团股份有限公司 | 一种网络游戏客户端与服务器集群的认证方法 |
US20100332487A1 (en) * | 2008-02-19 | 2010-12-30 | Nec Corporation | Pattern verification apparatus, pattern verification method, and program |
US20100287132A1 (en) * | 2009-05-05 | 2010-11-11 | Paul A. Lipari | System, method and computer readable medium for recording authoring events with web page content |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501304A (zh) * | 2013-10-12 | 2014-01-08 | 深信服网络科技(深圳)有限公司 | 控制web系统越权访问的方法及装置 |
CN103501304B (zh) * | 2013-10-12 | 2017-01-25 | 深信服网络科技(深圳)有限公司 | 控制web系统越权访问的方法及装置 |
CN104486342A (zh) * | 2014-12-19 | 2015-04-01 | 山东中创软件商用中间件股份有限公司 | 一种隐藏表单防护方法、装置、服务器和网购平台 |
CN106161466A (zh) * | 2016-08-30 | 2016-11-23 | 迈普通信技术股份有限公司 | Web服务器及表单提交安全交互方法 |
CN109891415A (zh) * | 2016-11-28 | 2019-06-14 | 国际商业机器公司 | 针对未经授权的客户端应用程序保护Web服务器 |
CN109891415B (zh) * | 2016-11-28 | 2023-03-10 | 国际商业机器公司 | 针对未经授权的客户端应用程序保护Web服务器 |
Also Published As
Publication number | Publication date |
---|---|
US20130238691A1 (en) | 2013-09-12 |
CN103312664B (zh) | 2017-06-09 |
US9444910B2 (en) | 2016-09-13 |
US10122830B2 (en) | 2018-11-06 |
TWI587679B (zh) | 2017-06-11 |
US20170034314A1 (en) | 2017-02-02 |
TW201338497A (zh) | 2013-09-16 |
EP2823431A1 (en) | 2015-01-14 |
WO2013134512A1 (en) | 2013-09-12 |
EP2823431B1 (en) | 2019-01-23 |
CN107451472B (zh) | 2021-06-04 |
JP5868529B2 (ja) | 2016-02-24 |
CN107451472A (zh) | 2017-12-08 |
JP2015511038A (ja) | 2015-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103312664A (zh) | 表单验证方法、装置和系统 | |
US20210097536A1 (en) | Signature verification method, apparatus, and system | |
CN111917773B (zh) | 业务数据处理方法、装置和服务器 | |
CN104283841B (zh) | 对第三方应用进行服务访问控制的方法、装置及系统 | |
CN114679293A (zh) | 基于零信任安全的访问控制方法、设备及存储介质 | |
US20180253542A1 (en) | Variation Analysis-Based Public Turing Test to Tell Computers and Humans Apart | |
CN103065178B (zh) | 一种二维码分享装置、访问装置和分享方法 | |
CN111355726B (zh) | 一种身份授权登录方法、装置及电子设备和存储介质 | |
CN111770057B (zh) | 身份验证系统及身份验证方法 | |
CN103227786B (zh) | 一种网站登录信息填入方法及装置 | |
CN112131564B (zh) | 加密数据通信方法、装置、设备以及介质 | |
CN104348612A (zh) | 一种基于移动终端的第三方网站登录方法和移动终端 | |
CN105516208A (zh) | 一种有效防止网络攻击的web网站链接动态隐藏方法及装置 | |
CN108322416B (zh) | 一种安全认证实现方法、装置及系统 | |
CN106331042B (zh) | 一种异构用户系统的单点登录方法及其装置 | |
CN104426659A (zh) | 动态口令生成方法、认证方法及系统、相应设备 | |
CN108200040A (zh) | 移动客户端免密登录的方法、系统、浏览器及移动终端 | |
CN105099676A (zh) | 一种用户登录方法、用户终端及服务器 | |
CN111628871A (zh) | 一种区块链交易处理方法、装置及电子设备和存储介质 | |
CN113709115A (zh) | 认证方法及装置 | |
CN115225362A (zh) | 人机行为的验证方法、装置、设备及存储介质 | |
CN107888623A (zh) | 直播软件音视频数据流防劫持方法及装置 | |
CN104079527A (zh) | 一种信息处理方法及电子设备 | |
CN106888200B (zh) | 标识关联方法、信息发送方法及装置 | |
CN103812822A (zh) | 一种安全认证方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1185734 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1185734 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170609 |