CN101227451B - 通过Web表单获得用户交互数据的方法及系统 - Google Patents

通过Web表单获得用户交互数据的方法及系统 Download PDF

Info

Publication number
CN101227451B
CN101227451B CN2007100007725A CN200710000772A CN101227451B CN 101227451 B CN101227451 B CN 101227451B CN 2007100007725 A CN2007100007725 A CN 2007100007725A CN 200710000772 A CN200710000772 A CN 200710000772A CN 101227451 B CN101227451 B CN 101227451B
Authority
CN
China
Prior art keywords
sign
input domain
web list
described web
list input
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.)
Active
Application number
CN2007100007725A
Other languages
English (en)
Other versions
CN101227451A (zh
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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2007100007725A priority Critical patent/CN101227451B/zh
Publication of CN101227451A publication Critical patent/CN101227451A/zh
Priority to HK08113745.3A priority patent/HK1122426A1/xx
Application granted granted Critical
Publication of CN101227451B publication Critical patent/CN101227451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种通过Web表单获得用户交互数据的方法,其特征在于,包括:根据用户请求触发Web表单生成程序;对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;根据所述Web表单输入域的第二标识生成Web表单;客户端显示所述Web表单,接收用户输入的表单数据;采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。本发明可以有效防止Web表单地自动填写,保证网站系统的安全运行,不需要用户进行额外的操作,并且成本和风险较低。

Description

通过Web表单获得用户交互数据的方法及系统 
技术领域
本发明涉及网络数据交互领域,特别是涉及一种通过Web表单获得用户交互数据的方法及系统。 
背景技术
Web表单是网站系统基于Web页面,与用户交互的主要手段之一,用户可以通过在Web表单上输入凭据,例如,用户名和密码,来表明自己的身份。在收到这些凭据后,Web应用程序对照数据源检查用户的凭据,如上所述用户名和密码,以验证用户的身份。在实际中,当网站系统需要从用户处取得输入时,它会提供给用户一个包含Web表单的页面,其中包含多个具有名字的输入域。用户在输入域填写信息,并将填写完成后的表单提交给网站系统。网站系统从提交的表单中根据名字检查用户填写的值,对这些值进行验证并进行后续的处理。 
根据现有的Web表单应用的工作方式,网站系统无法从提交的表单数据中判断表单的填写者是否是真实的用户。因此,用户可以绕过表单的人工填写步骤,通过使用通用的Web表单自动填写工具或者专门针对该网站系统编写的机器人程序,例如:AI RoboForm、海量论坛群发等软件进行自动识别注册表单、用户批量注册、自动登录等,某些用户通过利用此类工具进行恶意灌水、恶意增加数据库访问、用特定程序暴力破解密码、发布垃圾信息等操作,由于自动填写程序或机器人程序提供的数据是虚假的,因此会严重干扰网络系统的正常运营,而且,上述程序能够在短时间内产生大量的数据,极大地妨碍了网站系统的健康、安全运行。 
为了防止某些别有用心的用户利用上述恶意程序或机器人程序进行恶意操作,中国专利第200510034062.5号申请文件公开了一种验证信息生成装置及其方法、反自动机验证装置及其方法,该发明包括:至少一个信息存储单元,用于接收并存储第一信息及该信息对应的第二信息;信息选择单元,用于从所述信息存储单元中选取第一信息及对应的第二信 息;并将所述第一信息作为生成验证图片所需的信息,将所述第一信息对应的第二信息作为验证码。 
这种现有的验证码技术要求用户识读表单上的这个的验证码图片并将识读结果输入到验证码文本框内。但为了防止电脑OCR读图程序识别和破解验证码,一般需要在合理范围内适当增加对验证码图片的识别难度。处理手段主要是对色彩、形状、干扰元素、位置进行变异处理,使得生成的验证码图片不具有程序阅读的规律性。当用户填写表单时,除了填写应用所需要的表单内容外,还需要肉眼识别出验证码图片中的内容,并填写到验证码输入域中一起提交给网站系统。网站系统验证用户填写的验证码是否与验证码图片生成时使用的符号相同,相同时才接受表单数据,否则就会拒绝本次提交的表单数据。如果经过干扰后的验证码图片很难识别,尽管很难使用程序识别出这些字符,但对用户而言,识别出这些变形后的字符也是有一定难度的,从而影响用户对网站的使用积极性。然而如果对验证码不作太多的干扰,但就可以比较方便地使用OCR技术自动识别出其中包含的字符,起不到防止表单自动填写的作用。 
具体地说,使用这种验证码技术存在以下缺点: 
其一,网站应用验证码后,将增大服务器压力,具体表现在两个方面。一是因为生成验证码时使用了许多的算法,生成验证码过程中会占用服务器CPU时间,二是应用Session会消耗服务器内存。简而言之,即由于验证码是一张动态产生的图片,产生与显示图片会造成对应用服务器的一次额外请求,而且产生图片需要的计算开销比较大,会占用服务器的大量计算资源,对网站系统的性能也有负面影响。 
其二,服务器生成的验证码明文不能保存在客户端浏览器上,否则被用户读取后就失去了验证的作用。 
其三,增加了用户填写表单的工作量,比如在常见的注册表单中,只需要用户填写用户名与密码两个输入域,但增加了验证码之后,用户就需要识别出图片并填写图片内容,填写表单的工作量增加了50%。正由于此,当网站系统为了提供安全性而在某个Web页面表单上增加“验证码”之后,会遭遇大量用户的反对,造成用户的流失。 
总之,提供一种既能提高网站运行安全性,又不增加服务提供商的成本的Web表单,是本领域技术人员迫切需要解决的技术问题。 
发明内容
本发明所要解决的技术问题是提供一种通过Web表单获得用户交互数据的方法,以防止用户使用通用表单填写工具自动填写Web表单,并大大提高编写机器人程序自动批量填写与提交表单的难度。 
本发明的另一个目的是将上述识别方法应用于实际中,提供一种通过Web表单获得用户交互数据的系统,可以使用户不需要进行额外操作即可保证上述识别方法的实现和应用。 
为解决上述技术问题,本发明的实施例提供了一种通过Web表单获得用户交互数据的方法,包括: 
根据用户请求触发Web表单生成程序; 
对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识; 
根据所述Web表单输入域的第二标识生成Web表单; 
客户端显示所述Web表单,接收用户输入的表单数据; 
采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。 
优选的是,通过以下步骤生成所述Web表单输入域的第二标识: 
将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串; 
根据所述新字符串生成所述Web表单输入域的第二标识。 
优选的是,所述的方法还包括:存储所述Web表单输入域的第一标识和对应的第二标识。 
优选的是,所述的方法还包括: 
根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表; 
根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则对应Web表单输入域的第一标识重新生成所述Web表单输入域的第二标识;
对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。 
优选的是,所述的方法,所述采用Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据包括: 
根据所述Web表单输入域的第二标识在所述映射表中查找第一标识; 
返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。 
优选的是,所述映射表为一个会话变量。 
优选的是,所述的方法,还包括:对所述Web表单输入域的第二标识进行变换。 
本发明的实施例还提供了一种通过Web表单获得用户交互数据的系统,包括: 
触发模块:用于根据用户请求触发Web表单生成程序; 
第二标识生成模块:用于对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识; 
表单生成模块:用于根据所述Web表单输入域的第二标识生成Web表单; 
替换模块:用于采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据; 
客户端:用于显示所述Web表单,接收用户输入的表单数据,以及与服务器进行通讯。 
优选的是,所述第二标识生成模块包括: 
构成单元:用于将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串; 
生成单元:用于根据所述新字符串生成所述Web表单输入域的第二标识。 
优选的是,所述的系统,还包括存储模块:用于存储所述Web表单 输入域的第一标识和对应的第二标识。 
优选的是,所述的系统,还包括: 
预置模块:用于根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表; 
判断模块:用于根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则调用所述第二标识生成模块重新生成所述Web表单输入域的第二标识; 
记录模块:用于对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。 
优选的是,所述的系统,所述替换模块包括: 
查找模块:用于根据所述Web表单输入域的第二标识在所述映射表中查找第一标识; 
删除模块:用于返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。 
优选的是,所述映射表为一个会话变量。 
优选的是,所述的系统,还包括变换模块:用于对所述Web表单输入域的第二标识进行变换。 
与现有技术相比,本发明具有以下优点: 
首先,本发明通过对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识,使Web表单输入域名字动态变化,对于通用表单自动填写工具而言,它是无法通过录制、回放机制来实现Web表单的自动填写,因此本方法能够完全有效地防止使用动态表单自动填写工具填写表单;对于机器人程序的编写者而言,他无法再使用传统的通过查看表单HTML源代码人工识别Web表单输入域名字,并在机器人程序中固定编码输入域名字的方法实现机器人程序,因此,本发明可以有效防止Web表单地自动填写,从而避免某些用户通过利用此类工具进行地恶意操作,保证网络系统的正常运营,以及网站系统的健康、安全运行。 
其次,本发明还通过运用表现层技术隐藏表单输入域的动态名字,进一步防止了机器人程序的编写者可能通过再编写一个表单解析程序来从表单中解析出动态表单输入域的名字的情形,从而大大提高用户使用机器人程序自动填写与提交表单的难度。 
最后,本发明对用户完全透明,不需要用户在填写表单时进行额外的操作,没有用户体验上的困难。 
并且,对于服务提供商来说,本发明技术实现简单,无技术障碍,无特殊保密算法,成本和风险较低。 
附图说明
图1是本发明的一种通过Web表单获得用户交互数据的方法的流程图; 
图2是一种客户端解析源代码后显示界面的示意图; 
图3是基于图2所示的系统实现用户身份验证的步骤流程图; 
图4是应用图3所示系统优选地获得用户交互数据的流程图。 
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。 
参照图1,是本发明的一种通过Web表单获得用户交互数据的方法的流程图,包括以下步骤: 
步骤101、根据用户请求触发Web表单生成程序; 
步骤102、对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识; 
步骤103、根据所述Web表单输入域的第二标识生成Web表单; 
步骤104、客户端显示所述Web表单,接收用户输入的表单数据; 
步骤105、采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。 
在本发明中,用户向网站服务器请求显示Web页面即可触发服务器中的表单生成程序将Web表单中每一个输入域的第一标识,即该输入域的原始名字,例如,user_name,通过预置算法随机生成一个只在本次表单处理中有效的动态名字,即生成所述Web表单输入域的第二标识。优选的是,所述算法包括以下步骤: 
将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新 手符串; 
根据所述新字符串生成所述Web表单输入域的第二标识。 
例如,首先将所述Web表单输入域的第一标识(比如user_name)连接一个随机字符串599aa1b2f71447cdfcd469d8ade45b09,再连接当前精确到毫秒的时间戳值1160933500109,构成一个新的字符串user_name|599aa1b2f71447cdfcd469d8ade45b09|1160933500109; 
然后对这个新字符串进行加密,加密算法可以是DES、Blowfish等具备唯一性和还原性的算法,对于选择何种法加密算法,本发明对此不作限制; 
对该新字符串进行加密之后再进行一个简单的替换运算,将加密后的字符串中的字符替换为一个合法的参数名字,例如,将/替换为_1,将=替换为2,则加密后的动态字符串为bHdiLTP4JaN86HXX9aAq_1suNoVscI2zRxiywWOpwEYyt13AypG9MeyCcQTptUXXtLn_1pg4QITVw_2,则这个动态字符串为所述Web表单输入域的第二标识。 
由于所述算法都具有还原性,因此,当需要根据所述Web表单输入域的第二标识还原所述第一标识时,例如,当需要采用所述Web表单输入域的第一标识替换所述第二标识时,通过逆运算还原的方法即可根据上述动态字符串执行所述加密算法与替换算法的逆运算对所述动态字符串进行解密和还原,根据上例,即可还原得到所述第一标识、随机字符串和时间戳值。 
在实际中,以上将时间戳值加入字符串的算法除了可以保证所述第二标识具有很高地唯一性以外,还有以下好处:当通过上述算法从所述第二标识中还原获得时间戳值后,可以根据该时间戳值对这个第二标识进行检验。具体地检验过程为:判断这个时间戳值的时间相比当前时间戳值是否超过预置的表单填写时间(例如,30分钟),这个表单填写时间可以根据需要设置任意值,本发明对此不作限制。如果没有超过这个预置时间,则认为这个第二标识是有效标识,可以应用于后续操作中;然而,如果超过了上述预置时间,则认为这个第二标识是无效标识,需要对应原来的第一标识重新生成。 
作为另一实施例,在经过上述步骤获得新的字符串以后,还可以对 这个新的字符串user_name|599aa1b2f71447cdfcd469d8ade45b09|1160933500109进行混淆运算,例如,采用md5算法,得到一个32位16进制的动态字符串61324505cb53cad9ff56ba8d42be8efb,这个动态字符串就是所述Web表单输入域的第二标识。需要说明的是,在这种情况下,采用的算法可以是不具有还原性的算法,如上述md5算法就是一种不可逆的算法,但由于所述算法基于的新的字符串中包含时间戳值,因此,通过混淆算法获得的第二标识依旧具有很高的全局唯一性。 
由于可以应用不可逆的算法,所以在这种情况下,本发明不是通过基于算法的逆运算或逆置换来还原,而是通过查找存储在服务器中的所述Web表单输入域的第二标识的第一标识的方法来还原的,因此,本发明还可以包括步骤:存储所述Web表单输入域的第一标识和对应的第二标识。优选的是,所述存储为以Key-Value对文件或Key-Value对数据库的形式进行存储,所以Key为所述Web表单输入域的第二标识,所述Value为所述Web表单输入域的第一标识。或者通过设置映射表来存储,即,将所述第二标识与第一标识的对应关系都记录到这张映射表中。当然,采用现有技术中的其它存储方法都是可行的,本发明对此不需要进行限定。 
上述生成Web表单输入域的第二标识的方法有如下优点: 
1、将Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串,再经过加密、替换或混淆,可以在事实上保证生成的第二标识的全局唯一性; 
2、这种生成与还原的过程效率高,不会影响系统处理效率,并且有效防止了自动表单填写工具等恶意程序的攻击。 
为了提高系统处理效率,减少系统资源占用,所述生成Web表单输入域的第二标识还可以采用现有技术中非常简单的算法,例如,生成一个随机数,将该随机数前面加上前缀“f”作为所述第二标识,在这种情况下,为了保证所述第二标识的全局唯一性,本发明还可以包括以下步骤: 
步骤S1、根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表; 
步骤S2、根据所述Web表单输入域的第二标识在所述映射表中查找, 如果所述Web表单输入域的第二标识已经存在,则对应Web表单输入域的第一标识重新生成所述Web表单输入域的第二标识; 
步骤S3、对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。 
例如,所述Web表单输入域的第二标识和对应的第一标识预置映射表,形如: 
    Web表单输入域的第二标识     Web表单输入域的第一标识
    71fd65bef474be13877bc63ddebd95a6     用户名
    ab73b9ed5d37204e8e1a37bd9db48958     用户密码
然后,根据71fd65bef474be13877bc63ddebd95a6和ab73b9ed5d37204e8e1a37bd9db48958在上述映射表中查找,如果已经有相同的Web表单输入域的第二标识存在,则对应Web表单输入域的第一标识重新生成一个新的第二标识,再对这个新的第二标识进行查找,直至生成不同的第二标识为止;本实施例通过这种查表的方式,可以有效避免所述第二标识的重复项,从而保证所述第二标识的全局唯一性。 
最后,在所述Web表单输入域的第一标识的对应位置记录所述Web表单输入域的第二标识。 
基于上述生成Web表单输入域的第二标识的方法,其还原的方法亦不同于前述两种还原方法,具体地说,可以通过以下步骤将所述Web表单输入域的第二标识还原成所述第一标识: 
步骤A、根据所述Web表单输入域的第二标识在所述映射表中查找对应的第一标识; 
步骤B、返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。 
延用上例,基于所述步骤的还原方法为: 
首先,根据第二标识71fd65bef474be13877bc63ddebd95a6和ab73b9ed5d37204e8e1a37bd9db48958在映射表中查找获得对应的第一标识分别是“用户名”和“用户密码”; 
然后,将“用户名”和“用户密码”返回至服务器,服务器采用所述“用户名”和“用户密码”替换所述71fd65bef474be13877bc63ddebd95a6和 ab73b9ed5d37204e8e1a37bd9db48958,并把所述71fd65bef474be13877bc63ddebd95a6和ab73b9ed5d37204e8e1a37bd9db48958进行删除。 
优选的是,所述映射表为一个会话变量,公知的是,所述会话变量存储着用户的会话生命周期的信息。当用户第一次打开应用程序中的某一页时,用户会话就此开始。当用户一段时间内不再打开该应用程序中的其它页时,或者用户明确终止该会话时,会话即告结束。因此,它只在本次会话中有效,并且随着会话结束而被自动销毁。 
获得Web表单输入域的第二标识后,表单生成程序即可根据所述第二标识生成Web表单的源代码,并返回给客户端,用户就可以通过网页浏览器(如IE)查看所述Web表单,例如,表单生成程序生成Web表单的源HTML代码为: 
  <form action=″LoginAuth″method=″post″>  电子邮件:<input type=″text″name=″71fd65bef474be13877bc63ddebd95a6  ″value=″″>  密码:<input type=″password″  name=″ab 73b9ed5d37204e8e1a37bd9db48958″>  </form>
客户端接收上述源HTML代码后,会对所述源代码进行解析,提供相应的表单页面向用户显示,所述显示界面如图2所示。 
从上述源代码中可以看出,原来输入域的第一标识“电子邮件”变成了第二标识“71fd65bef474be13877bc63ddebd95a6”,输入域的第一标识“密码”变成了第二标识“ab73b9ed5d37204e8e1a37bd9db48958”。这两个第二标识是根据上述算法是动态产生的,当用户下一次再发出请求触发表单生成程序时,根据所述输入域的第一标识还会生成不同的第二标识。 
用户填写所述Web表单的输入域,客户端接收用户输入的表单数据并将表单提交至网站的服务器,服务器接收到这些表单数据后,从中解析出表单输入域的名字和值,即解析出所述Web表单的输入域的第二标识和用户输入的表单数据,并将接受到的每一个输入域的第二标识都还原成输入域的第一标识,即其原始名字,用以使所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户的交互数据。 
所述解析过程为按照标准的HTTP协议解析出所述Web表单输入域的名字和值。为使本领域技术人员更好地理解本发明,以下以java语言处理HTTP POST请求为例,详细说明表单数据的解析过程: 
当浏览器以POST方式向服务器提交一个表单时,它会将表单中每一个输入域的名字与值表示为key=value的形式,然后用&符号将所有的key=value对连接起来,构成一个字符串(这种编码标准称为application/x-www-form-urlencoded),并且将这个字符串放在HTTP请求体中传给服务器。在服务器端,需要将x-www-form-urlencoded编码过的字符串还原成key-value对的形式,并构成一个映射表。使用java语言作为示例,服务器端代码的可能形式为: 
Map paraMap=request.getParameterMap(); 
Iterator it=paraMap.keySet().iterator(); 
while(it.hasNext()){ 
String key=(String)it.next(); 
String value=((String[])paraMap.get(key))[0]; 
items.put(key,value); 
执行上述代码后,HTTP请求体中的x-www-form-urlencoded格式的字符串71fd65bef474be13877bc63ddebd95a6=<用户填写的email>&ab73b9ed5d37204e8e1a37bd9db48958=<用户填写的密码>会被解析成一个映射表,其中包含表单输入域的第二标识与表单数据的对应关系,如下表所示: 
  表单输入域名字     表单输入域值
  71fd65bef474be13877bc63ddebd95a6     用户填写的email
  ab73b9ed5d37204e8e1a37bd9db48958     用户填写的密码
所述表单输入域名字进行还原,就可以得到表单输入域的原始名字,从而得到表单输入域原始名字与表单输入域值的对应表。 
    表单输入域原始名字     表单输入域值
    Email     用户填写的email
    Passwd     用户填写的密码
所述还原的具体方法及步骤请参见前述相关部分,本发明在此不再赘述。当然,本领域技术人员采用现有技术中的其它方法进行还原也是可行的,本发明对此不需要进行限定。 
在所述还原的过程中,有可能出现的一种情况是:无法根据所述第二标识还原出第一标识,这种情况有可能是由于不是人工操作引起的,说明用户提交的表单数据是无效的,因此,在这种情况下,本发明实施例优选的处理方式是:拒绝本次表单数据,向客户端直接返回失败页面。从而有效避免了自动填写表单的机器和程序的操作。 
根据还原后的Web表单输入域原始名字和用户提交的输入域的值(即所述Web表单输入域的第一标识和表单数据)获得用户交互数据,再根据所述交互数据按照现有的表单处理方式进行处理,例如,先对所述交互数据进行分析,然后对这些数据进行合法性校验;从而得到处理结果,比如用户身份验证通过,然后再将这个处理结果返回客户端。 
本发明的主要优势在于,可以有效防止通用表单自动填写工具和表单自动填写工具填写表单,从而保证网络系统的正常运行。 
对于通用表单自动填写工具来说,由于这种工具需要填写任意类型的表单,程序的编写者无法事先就从表单中人工识别出输入域的名字与含义的对应关系。因此,它的工作原理是,在用户填写表单时,录制下每一个表单输入域的名字与填写的值。当用户下次再需要填写同样的表单时,它可以将以前录制的内容回放出来,实现表单的自动填写。 
但是,本发明的方法使用的表单输入域名字是动态变化的,它是无法通过录制、回放机制来实现表单自动填写的,因此本发明能够完全防止使用动态表单自动填写工具填写表单。 
此外,对于表单自动填写机器人程序来说,这种程序的编写者一般通过人工识别表单中输入域的名字与含义,并在程序中将输入域的名字与含义编码进去,实现表单的自动填写与提交。为使本领域技术人员更好地理解,以下通过举例加以说明: 
例如,表单自动填写程序的编写者查看邮件登录页面的源HTML代码,去掉一些页面格式化标记之后,可以剥离出这个表单的源代码如下: 
 <form action=″LoginAuth″method=″post″> 电子邮件:<input type=″text″name=″Email″value=″″> 密码:<input type=″password″name=″Passwd″> </form>
根据上述源代码,程序编写者就可以知道输入域的名字与含义的对应关系如下: 
    输入域名字     输入域含义
    Email     登录者的电子邮件地址
    Passwd     登录者的密码
得知这个对应关系之后,程序编写者就可以编写出一个能够自动登录该网站的程序,或者对用户的密码进行穷举式猜测。它的核心代码可以用文字表示如下: 
  1.构造一个HTTP请求;  2.在请求中加入参数,参数名称为Email,参数值为需要登录的用户的  电子邮件地址;  3.在请求中加入参数,参数名称为Passwd,参数值为登录密码;  4.向网站提交该HTTP请求,完成登录,取得登录者身份;  5.做只有登录者才能做的事情,比如开始论坛灌水。
但是,基于本发明的方法,所述机器人程序的编写者无法使用传统的通过查看表单HTML源代码人工识别输入域名字,并在机器人程序中固定编码输入域名字的方法实现机器人程序。因此本发明能够完全防止使用表单自动填写程序填写表单。 
一种极端的情况是,所述机器人程序的编写者可能通过再编写一个表单解析程序来从表单中解析出动态表单输入域的名字,并将这个名字作为机器人程序的输入。 
例如,采用本发明生成Web表单的源HTML代码为: 
<form action=″LoginAuth″method=″post″>电子邮件:<input type=″text″name=″71fd65bef474be13877bc63ddebd95a6"value="″>
密码:<input type=″password″name=″ab 73b9ed5d37204e8e1a37bd9db48958″></form>
对于这个Web表单,机器人程序的编写者设计的表单解析程序的工作原理可以如下所示: 
1.从源HTML中找到<form action=″LoginAuth″,确定表单源代码在源HTML中的位置;2.对表单源代码中的每一个<input,解析其name的值,得到一个第二标识列表:[71fd65bef474be13877bc63ddebd95a6,ab73b9ed5d37204e8e1a37bd9db48958];3.第二标识列表中的第一项即为电子邮件输入域的名字;4.第二标识列表中的第二项即为密码输入域的名字。
只要网站不改变表单源代码的布局,即使输入域的名字始终在变化,所述表单解析程序也可以得到输入域的第二标识(即动态名字)与含义的对应关系,达到破解本发明的Web表单的目的。 
在这种情况下,本发明还包括步骤:对所述Web表单输入域的第二标识进行变换处理,用以增加所述Web表单输入域的第二标识的隐蔽性。为使本领域技术人员更好地理解本发明,以下以一种使用javascript页面脚本技术增加输入域动态名字的隐蔽性的方法为例详细说明所述变换处理的过程。 
例如,原来的Web表单形式为: 
  <form action=″LoginAuth″method=″post″>  电子邮件:<input type=″text″  name=″71fd65bef474be13877bc63ddebd95a6″value=″″>  密码:<input type=″password″  name=″ab 73b9ed5d37204e8e1a37bd9db48958″>  </form>
基于上述Web表单通过以上代码进行变换: 
<script>     function writeInput(label,type,name)  {        document.write(label+′<input type=″′+type+″′name=″′+name+″′>′);     }   function transform(name)   {         return name.substring(22)+name.substring(0,22);     }</script><form action=″LoginAuth″method=″post″><script>  writeInput(″电子邮件:″,″text″,transform(″74be13877bc63ddebd95a671fd65bef4″));   writeInput(″密码:″,″password″,transform(″37204e8e1a37bd9db48958ab73b9ed5d″));</script></form>
需要说明的是,所述变换过程是通过程序自动完成的。 
首先,程序生成一个动态可逆的javascript transform函数。在上述例子中提出了一个简单的字符串变换函数,在实际应用中这个变换函数可以任意复杂,而且这个函数也是动态的,每一次的变换算法的参数都不一样。 
其次,在输出表单输出域时,通过javascript函数writeInput来写,给writeInput函数提供的name参数是通过transform函数变换后的值,而给transform函数提供的值是所述Web表单表单输入域名字通过transform函数的逆变换生成的。 
经过上述变换处理,由于输入域的动态名字不再直接出现在表单HTML源码中,而是通过另一个动态javascript函数生成的,这样,机器人程序的编写者就很难通过解析表单来获取输入域的动态名字了。 
本发明的另一个优势在于,由于本发明只在服务器中执行相关步骤,不会改变用户使用现有Web表单的方法,也不会在现有技术的基础上额外增加用户的操作步骤,不会影响用户的操作体验。 
参考图3,是本发明一种通过Web表单获得用户交互数据的系统的结构框图,包括以下模块: 
触发模块301:用于根据用户请求触发Web表单生成程序; 
第二标识生成模块302:用于对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识; 
表单生成模块303:用于根据所述Web表单输入域的第二标识生成Web表单; 
替换模块304:用于采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据; 
客户端305:用于显示所述Web表单,接收用户输入的表单数据,以及与服务器进行通讯。 
优选的是,所述第二标识生成模块302进一步包括构成单元和生成单元,其中所述构成单元用于将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;所述生成单元用于根据所述新字符串生成所述Web表单输入域的第二标识。 
优选的是,所述的系统还包括存储模块,用于存储所述Web表单输入域的第一标识和对应的第二标识。 
优选的是,所述的系统还包括预置模块、判断模块和记录模块,所述预置模块用于根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;所述判断模块用于根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则调用所述第二标识生成模块重新生成所述Web表单输入域的第二标识;所述记录模块用于对应所述Web表单输入域的 第一标识记录所述Web表单输入域的第二标识。 
优选的是,所述的系统还包括查找模块和删除模块,所述查找模块用于根据所述Web表单输入域的第二标识在所述映射表中查找第一标识;所述删除模块用于返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。 
优选的是,所述映射表为一个会话变量。 
优选的是,所述的系统还包括变换模块、用于对所述Web表单输入域的第二标识进行变换。 
参考图4,是应用图3所示系统优选地获得用户交互数据的流程图,包括以下步骤: 
步骤401、根据用户请求触发Web表单生成程序; 
步骤402、对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识; 
优选的是,通过以下子步骤生成所述Web表单输入域的第二标识: 
子步骤C1、将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串; 
子步骤C2、根据所述新字符串生成所述Web表单输入域的第二标识。 
步骤403、根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表; 
步骤404、根据所述Web表单输入域的第二标识在所述映射表中查找是否已经存在所述Web表单输入域的第二标识,如果所述Web表单输入域的第二标识已经存在,则执行步骤402,否则执行下一步; 
步骤405、对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识; 
步骤406、根据所述Web表单输入域的第二标识生成Web表单; 
步骤407、客户端显示所述Web表单,接收用户输入的表单数据; 
步骤408、根据所述Web表单输入域的第二标识在所述映射表中查找第一标识; 
步骤409、采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据; 
步骤410、返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。 
由于图4所示方法的相关内容和详细的实施过程已经在前述部分进行了详细描述,在此就不再赘述。 
以上对本发明所提供的一种通过Web表单获得用户交互数据方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 

Claims (14)

1.一种通过Web表单获得用户交互数据的方法,其特征在于,包括:
根据用户请求触发Web表单生成程序;
对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;
根据所述Web表单输入域的第二标识生成Web表单;
客户端显示所述Web表单,接收用户输入的表单数据;
采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。
2.如权利要求1所述的方法,其特征在于,通过以下步骤生成所述Web表单输入域的第二标识:
将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;
根据所述新字符串生成所述Web表单输入域的第二标识。
3.如权利要求2所述的方法,其特征在于,还包括:
存储所述Web表单输入域的第一标识和对应的第二标识。
4.如权利要求1所述的方法,其特征在于,还包括:
根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;
根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则对应Web表单输入域的第一标识重新生成所述Web表单输入域的第二标识;
对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。
5.如权利要求4所述的方法,其特征在于,所述采用Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据包括:
根据所述Web表单输入域的第二标识在所述映射表中查找第一标识;
返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。
6.如权利要求4或5所述的方法,其特征在于,所述映射表为一个会话变量。
7.如权利要求1、2、3、4或5所述的方法,其特征在于,还包括:
对所述Web表单输入域的第二标识进行变换。
8.一种通过Web表单获得用户交互数据的系统,其特征在于,包括:
触发模块:用于根据用户请求触发Web表单生成程序;
第二标识生成模块:用于对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;
表单生成模块:用于根据所述Web表单输入域的第二标识生成Web表单;
替换模块:用于采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据;
客户端:用于显示所述Web表单,接收用户输入的表单数据,以及与服务器进行通讯。
9.如权利要求8所述的系统,其特征在于,所述第二标识生成模块包括:
构成单元:用于将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;
生成单元:用于根据所述新字符串生成所述Web表单输入域的第二标识。
10.如权利要求9所述的系统,其特征在于,还包括:
存储模块:用于存储所述Web表单输入域的第一标识和对应的第二标识。
11.如权利要求8所述的系统,其特征在于,还包括:
预置模块:用于根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;
判断模块:用于根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则调用所述第二标识生成模块重新生成所述Web表单输入域的第二标识;
记录模块:用于对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。
12.如权利要求11所述的系统,其特征在于,所述替换模块包括:
查找模块:用于根据所述Web表单输入域的第二标识在所述映射表中查找第一标识;
删除模块:用于返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。
13.如权利要求11所述的系统,其特征在于,所述映射表为一个会话变量。
14.如权利要求8、9、10、11或12所述的系统,其特征在于,还包括:
变换模块:用于对所述Web表单输入域的第二标识进行变换。
CN2007100007725A 2007-01-19 2007-01-19 通过Web表单获得用户交互数据的方法及系统 Active CN101227451B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2007100007725A CN101227451B (zh) 2007-01-19 2007-01-19 通过Web表单获得用户交互数据的方法及系统
HK08113745.3A HK1122426A1 (en) 2007-01-19 2008-12-18 Method and system for acquiring user interactive data by a web form

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100007725A CN101227451B (zh) 2007-01-19 2007-01-19 通过Web表单获得用户交互数据的方法及系统

Publications (2)

Publication Number Publication Date
CN101227451A CN101227451A (zh) 2008-07-23
CN101227451B true CN101227451B (zh) 2011-04-06

Family

ID=39859210

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100007725A Active CN101227451B (zh) 2007-01-19 2007-01-19 通过Web表单获得用户交互数据的方法及系统

Country Status (2)

Country Link
CN (1) CN101227451B (zh)
HK (1) HK1122426A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138894A (zh) * 2015-07-23 2015-12-09 福建天晴数码有限公司 一种验证码安全防御方法、系统及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102238150A (zh) * 2010-05-06 2011-11-09 阿里巴巴集团控股有限公司 表单注册方法及服务器
CN102387181B (zh) * 2010-09-03 2015-09-23 腾讯科技(深圳)有限公司 一种登录方法和登录装置
CN102098331B (zh) * 2010-12-29 2013-06-19 北京锐安科技有限公司 一种还原web类应用内容的方法及其系统
CN105610811B (zh) * 2015-12-24 2019-06-25 中国建设银行股份有限公司 认证方法及其相关的设备和系统
CN105376264A (zh) * 2015-12-24 2016-03-02 中国建设银行股份有限公司 认证方法及设备
CN107370719B (zh) * 2016-05-13 2021-02-05 阿里巴巴集团控股有限公司 异常登录识别方法、装置及系统
CN108595921B (zh) * 2018-03-22 2020-11-13 北京奇艺世纪科技有限公司 一种源代码中字符串的混淆方法和装置
CN112783395B (zh) * 2020-06-08 2022-09-02 北京金山办公软件股份有限公司 一种显示表单域的方法、装置、电子设备及介质
CN112291352A (zh) * 2020-10-30 2021-01-29 杭州安恒信息安全技术有限公司 一种针对撞库和暴力破解的防护方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828584A (zh) * 2005-03-04 2006-09-06 华为技术有限公司 一种基于网页的关联查询及回填页面对象的方法
CN1845489A (zh) * 2005-04-06 2006-10-11 腾讯科技(深圳)有限公司 验证信息生成装置及其方法、反自动机验证装置及其方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828584A (zh) * 2005-03-04 2006-09-06 华为技术有限公司 一种基于网页的关联查询及回填页面对象的方法
CN1845489A (zh) * 2005-04-06 2006-10-11 腾讯科技(深圳)有限公司 验证信息生成装置及其方法、反自动机验证装置及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
万寨雨等.基于Java的附加码验证原理及其实现.《现代计算机》.2004,(第4期),全文. *
刘友生等.基于数据表的动态表单处理技术.《计算机工程与应用》.2004,(第34期),全文. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138894A (zh) * 2015-07-23 2015-12-09 福建天晴数码有限公司 一种验证码安全防御方法、系统及装置
CN105138894B (zh) * 2015-07-23 2019-07-09 福建天晴数码有限公司 一种验证码安全防御方法、系统及装置

Also Published As

Publication number Publication date
CN101227451A (zh) 2008-07-23
HK1122426A1 (en) 2009-07-10

Similar Documents

Publication Publication Date Title
CN101227451B (zh) 通过Web表单获得用户交互数据的方法及系统
WO2019095416A1 (zh) 信息推送方法、装置、终端设备及存储介质
US7392348B2 (en) Method for validating remotely cached dynamic content web pages
WO2019127881A1 (zh) 网页数据处理方法、装置、计算机设备及计算机存储介质
CN102868719B (zh) 一种基于缓存的网络访问方法和服务器
CN110602052A (zh) 微服务处理方法及服务器
US20070174762A1 (en) Personal web page annotation system
CN106878024B (zh) 一种基于缓存的验证码校验方法和系统
US20070100863A1 (en) Newsmaker verification and commenting method and system
CN103888490A (zh) 一种全自动的web客户端人机识别的方法
CN102724044A (zh) 电子证据验证保全方法
CN107612692B (zh) 一种信息处理方法、装置及存储介质
US20160337358A1 (en) Method for encoding an access to a computer resource
CN109376133A (zh) 文件访问方法及文件访问系统
CN112069384A (zh) 一种埋点数据处理方法、服务器及可读存储介质
CN111935078B (zh) 一种基于句柄的开放认证方法、装置及系统
CN111770072B (zh) 一种单点登录接入功能页面的方法和装置
CN111898036B (zh) 一种行为数据收集处理系统及方法
CN112989348A (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN112328486A (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN107451459A (zh) 使用图片验证码进行验证的方法和装置
CN108322420A (zh) 后门文件的检测方法和装置
CN103095663A (zh) 一种非登录用户间的信息交互方法和装置
CN108460116B (zh) 搜索方法、装置、计算机设备、存储介质及搜索系统
CN113992390A (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: 1122426

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1122426

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20191213

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, British Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: Alibaba Group Holding Co., Ltd.

TR01 Transfer of patent right