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

文档序号:7643177阅读:208来源:国知局

专利名称::通过Web表单获得用户交互数据的方法及系统的制作方法
技术领域
:本发明涉及网络数据交互领域,特别是涉及一种通过Web表单获得用户交互数据的方法及系统。
背景技术
:Web表单是网站系统基于Web页面,与用户交互的主要手段之一,用户可以通过在Web表单上输入凭据,例如,用户名和密码,来表明自己的身份。在收到这些凭据后,Web应用程序对照数据源检查用户的凭据,如上所述用户名和密码,以验证用户的身份。在实际中,当网站系统需要从用户处取得输入时,它会提供给用户一个包含Web表单的页面,其中包含多个具有名字的输入域。用户在输入域填写信息,并将填写完成后的表单提交给网站系统。网站系统从提交的表单中根据名字检查用户填写的值,对这些值进行验证并进行后续的处理。根据现有的Web表单应用的工作方式,网站系统无法从提交的表单数据中判断表单的填写者是否是真实的用户。因此,用户可以绕过表单的人工填写步骤,通过使用通用的Web表单自动填写工具或者专门针对该网站系统编写的机器人程序,例如AIRoboForm、海量论坛群发等软件进行自动识别注册表单、用户批量注册、自动登录等,某些用户通过利用此类工具进行恶意灌水、恶意增加数据库访问、用特定程序暴力破解密码、发布垃圾信息等操作,由于自动填写程序或机器人程序提供的数据是虚假的,因此会严重干扰网络系统的正常运营,而且,上述程序能够在短时间内产生大量的数据,极大地妨碍了网站系统的健康、安全运行。为了防止某些别有用心的用户利用上述恶意程序或机器人程序进行恶意操作,中国专利第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表单的自动填写,因此本方法能够完全有效地防止使用动态表单自动填写工具填写表单;对于机器人程序的编写者而言,他无法再使用传统的通过查看表单HTML源代码人工识别Web表单输入域名字,并在机器人程序中固定编码输入域名字的方法实现机器人程序,因此,本发明可以有效防止Web表单地自动填写,从而避免某些用户通过利用此类工具进行地恶意操作,保证网络系统的正常运营,以及网站系统的健康、安全运行。其次,本发明还通过运用表现层技术隐藏表单输入域的动态名字,进一步防止了机器人程序的编写者可能通过再编写一个表单解析程序来从表单中解析出动态表单输入域的名字的情形,从而大大提高用户使用机器人程序自动填写与提交表单的难度。最后,本发明对用户完全透明,不需要用户在填写表单时进行额外的操作,没有用户体验上的困难。并且,对于服务提供商来说,本发明技术实现简单,无技术障碍,无特殊保密算法,成本和风险较低。图1是本发明的一种通过Web表单获得用户交互数据的方法的流程图;图2是一种客户端解析源代码后显示界面的示意图;图3是基于图2所示的系统实现用户身份验证的步骤流程图;图4是应用图3所示系统优选地获得用户交互数据的流程图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。参照图1,是本发明的一种通过Web表单获得用户交互数据的方法的流程图,包括以下步骤步骤IOI、根据用户请求触发Web表单生成程序;步骤102、对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;步骤103、根据所述Web表单输入域的第二标识生成Web表单;步骤104、客户端显示所述Web表单,接收用户输入的表单数据;步骤105、采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。在本发明中,用户向网站服务器请求显示Web页面即可触发服务器中的表单生成程序将Web表单中每一个输入域的第一标识,即该输入域的原始名字,例如,user—name,通过预置算法随机生成一个只在本次表单处理中有效的动态名字,即生成所述Web表单输入域的第二标识。优选的是,所述算法包括以下步骤将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;根据所述新字符串生成所述Web表单输入域的第二标识。例如,首先将所述Web表单输入域的第一标识(比如user_name)连接一个随机字符串599aalb2f71447cdfcd469d8ade45b09,再连接当前精确到毫秒的时间戳值1160933500109,构成一个新的字符串user_name|599aa1b2f71447cdfcd469d8ade45b09|1160933500109;然后对这个新字符串进行加密,加密算法可以是DES、Blowfish等具备唯一性和还原性的算法,对于选择何种法加密算法,本发明对此不作限制;对该新字符串进行加密之后再进行一个简单的替换运算,将加密后的字符串中的字符替换为一个合法的参数名字,例如,将/替换为_1,将=替换为—2,则加密后的动态字符串为bHdiLTP4JaN86HXX9aAq—1suNoVscI2zRxiywWOpwEYytl3AypG9MeyCcQTptUXXtLn—lpg4QITVw—2,则这个动态字符串为所述Web表单输入域的第二标识。由于所述算法都具有还原性,因此,当需要根据所述Web表单输入域的第二标识还原所述第一标识时,例如,当需要采用所述Web表单输入域的第一标识替换所述第二标识时,通过逆运算还原的方法即可根据上述动态字符串执行所述加密算法与替换算法的逆运算对所述动态字符串进行解密和还原,根据上例,即可还原得到所述第一标识、随机字符串和时间戳值。在实际中,以上将时间戳值加入字符串的算法除了可以保证所述第二标识具有很高地唯一性以外,还有以下好处当通过上述算法从所述第二标识中还原获得时间戳值后,可以根据该时间戳值对这个第二标识进行检验。具体地枱r验过程为判断这个时间戳值的时间相比当前时间戳值是否超过预置的表单填写时间(例如,30分钟),这个表单填写时间可以根据需要设置任意值,本发明对此不作限制。如果没有超过这个预置时间,则认为这个第二标识是有效标识,可以应用于后续操作中;然而,如果超过了上述预置时间,则认为这个第二标识是无效标识,需要对应原来的第一标识重新生成。作为另一实施例,在经过上述步骤获得新的字符串以后,还可以对这个新的字符串user_name|599aalb2f71447cdfcd469d8ade45b09|1160933500109进行混淆运算,例如,采用md5算法,得到一个32位16进制的动态字符串61324505cb53cad9ff56ba8d42be8efb,这个动态字符串就是所述Web表单输入域的第二标识。需要说明的是,在这种情况下,采用的算法可以是不具有还原性的算法,如上述md5算法就是一种不可逆的算法,但由于所述算法基于的新的字符串中包含时间戳值,因此,通过混淆算法获得的第二标识依旧具有很高的全局唯一性。由于可以应用不可逆的算法,所以在这种情况下,本发明不是通过基于算法的逆运算或逆置换来还原,而是通过查找存储在服务器中的所述Web表单输入域的第二标识的第一标识的方法来还原的,因此,本发明还可以包括步骤存储所述Web表单输入域的第一标识和对应的第二标识。优选的是,所述存储为以Key-Value对文件或Key-Value对数据库的形式进行存储,所以Key为所述Web表单输入域的第二标识,所述Value为所述Web表单输入域的第一标识。或者通过设置映射表来存储,即,将所述第二标识与第一标识的对应关系都记录到这张映射表中。当然,采用现有技术中的其它存储方法都是可行的,本发明对此不需要进行限定。上述生成Web表单输入域的第二标识的方法有如下优点1、将Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串,再经过加密、替换或混淆,可以在事实上保证生成的第二标识的全局唯一性;2、这种生成与还原的过程效率高,不会影响系统处理效率,并且有效防止了自动表单填写工具等恶意程序的攻击。为了提高系统处理效率,减少系统资源占用,所述生成Web表单输入域的第二标识还可以采用现有技术中非常简单的算法,例如,生成一个随机数,将该随机数前面加上前缀"f,作为所述第二标识,在这种情况下,为了保证所述第二标识的全局唯一性,本发明还可以包括以下步骤步骤Sl、根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;步骤S2、根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则对应Web表单输入域的第一标识重新生成所述Web表单输入域的第二标识;步骤S3、对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。例如,所述Web表单输入域的第二标识和对应的第一标识预置映射表,形如<table>tableseeoriginaldocumentpage13</column></row><table>然后,才艮据71fd65bef474bel3877bc63ddebd95a6和ab73b9ed5d37204e8ela37bd9db48958在上述映射表中查找,如果已经有相同的Web表单输入域的第二标识存在,则对应Web表单输入域的第一标识重新生成一个新的第二标识,再对这个新的第二标识进行查找,直至生成不同的第二标识为止;本实施例通过这种查表的方式,可以有效避免所述第二标识的重复项,从而保证所述第二标识的全局唯一性。最后,在所述Web表单输入域的第一标识的对应位置记录所述Web表单输入域的第二标识。基于上述生成Web表单输入域的第二标识的方法,其还原的方法亦不同于前述两种还原方法,具体地说,可以通过以下步骤将所述Web表单输入域的第二标识还原成所述第一标识步骤A、根据所述Web表单输入域的第二标识在所述映射表中查找对应的第一标识;步骤B、返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。延用上例,基于所述步骤的还原方法为首先,根据第二标识71fd65bef474bel3877bc63ddebd95a6和ab73b9ed5d37204e8ela37bd9db48958在映射表中查找获得对应的第一标识分别是"用户名"和"用户密码";然后,将"用户名"和"用户密码"返回至服务器,服务器采用所述"用户名,,和"用户密码,,替换所述71fd65bef474bel3877bc63ddebd95a6和ab73b9ed5d37204e8ela37bd9db48958,并把所迷71fd65bef474bel3877bc63ddebd95a6和ab73b9ed5d37204e8ela37bd9db48958进4于删除。优选的是,所述映射表为一个会话变量,公知的是,所述会话变量存储着用户的会话生命周期的信息。当用户第一次打开应用程序中的某一页时,用户会话就此开始。当用户一段时间内不再打开该应用程序中的其它页时,或者用户明确终止该会话时,会话即告结束。因此,它只在本次会话中有效,并且随着会话结束而被自动销毁。获得Web表单输入域的第二标识后,表单生成程序即可根据所述第二标识生成Web表单的源代码,并返回给客户端,用户就可以通过网页浏览器(如IE)查看所述Web表单,例如,表单生成程序生成Web表单的源HTML代码为:_<formaction="LoginAuth"method="post">电子邮件:<inputtype="text"name="7^i/65^/47^e"S77&63fiWeM95fl6密码<inputtype="password"name="a673MW5必72似Mei"376rf9rfW卵58"></form>客户端接收上述源HTML代码后,会对所述源代码进行解析,提供相应的表单页面向用户显示,所述显示界面如图2所示。从上述源代码中可以看出,原来输入域的第一标识"电子邮件"变成了第二标识"71fd65bef474bel3877bc63ddebd95a6",输入域的第一标识"密码,,变成了第二标识"ab73b9ed5d37204e8ela37bd9db48958"。这两个第二标识是根据上述算法是动态产生的,当用户下一次再发出请求触发表单生成程序时,根据所述输入域的第一标识还会生成不同的第二标识。用户填写所述Web表单的输入域,客户端接收用户输入的表单数据并将表单提交至网站的服务器,服务器接收到这些表单数据后,从中解析出表单输入域的名字和值,即解析出所述Web表单的输入域的第二标识和用户输入的表单数据,并将接受到的每一个输入域的第二标识都还原成输入域的第一标识,即其原始名字,用以使所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户的交互数据。所述解析过程为按照标准的HTTP协议解析出所述Web表单输入域的名字和值。为使本领域技术人员更好地理解本发明,以下以java语言处理HTTPPOST请求为例,详细说明表单数据的解析过程当浏览器以POST方式向服务器提交一个表单时,它会将表单中每一个输入域的名字与值表示为key=value的形式,然后用&符号将所有的key=value对连接起来,构成一个字符串(这种编码标准称为application/x-www-form-urlencoded),并且将这个字符串i丈在HTTP请求体中传给服务器。在服务器端,需要将x-www-form-urlencoded编码过的字符串还原成key-value对的形式,并构成一个映射表。使用java语言作为示例,服务器端代码的可能形式为MapparaMap=request.getParameterMap();Iteratorit=paraMap.keySet().iterator();while(it.hasNext()){Stringkey=(String)it.next();Stringvalue=((String[])paraMap.get(key));items.put(key,value);执行上述代码后,HTTP请求体中的x-www-form-urlencoded格式的字符串71fd65bef474bel3877bc63ddebd95a6=<用户填写的email>&ab73b9ed5d37204e8ela37bd9db48958-〈用户填写的密码>会被解析成一个映射表,其中包含表单输入域的第二标识与表单数据的对应关系,如下表所示<table>tableseeoriginaldocumentpage15</column></row><table>所述表单输入域名字进行还原,就可以得到表单输入域的原始名字,从而得到表单输入域原始名字与表单输入域值的对应表。<table>tableseeoriginaldocumentpage15</column></row><table>所述还原的具体方法及步骤请参见前述相关部分,本发明在此不再可行的,本发明对此不需要进行限定。在所述还原的过程中,有可能出现的一种情况是无法根据所述第二标识还原出第一标识,这种情况有可能是由于不是人工操作引起的,说明用户提交的表单数据是无效的,因此,在这种情况下,本发明实施例优选的处理方式是拒绝本次表单数据,向客户端直接返回失败页面。从而有效避免了自动填写表单的机器和程序的操作。根据还原后的Web表单输入域原始名字和用户提交的输入域的值(即所述Web表单输入域的第一标识和表单数据)获得用户交互数据,再根据所述交互数据按照现有的表单处理方式进行处理,例如,先对所述交互数据进行分析,然后对这些数据进行合法性校验;从而得到处理结果,比如用户身份验证通过,然后再将这个处理结果返回客户端。本发明的主要优势在于,可以有效防止通用表单自动填写工具和表单自动填写工具填写表单,从而保证网络系统的正常运行。对于通用表单自动填写工具来说,由于这种工具需要填写任意类型的表单,程序的编写者无法事先就从表单中人工识别出输入域的名字与含义的对应关系。因此,它的工作原理是,在用户填写表单时,录制下每一个表单输入域的名字与填写的值。当用户下次再需要填写同样的表单时,它可以将以前录制的内容回放出来,实现表单的自动填写。但是,本发明的方法使用的表单输入域名字是动态变化的,它是无法通过录制、回放机制来实现表单自动填写的,因此本发明能够完全防止使用动态表单自动填写工具填写表单。此外,对于表单自动填写机器人程序来说,这种程序的编写者一般通过人工识别表单中输入域的名字与含义,并在程序中将输入域的名字与含义编码进去,实现表单的自动填写与提交。为使本领域技术人员更好地理解,以下通过举例加以说明例如,表单自动填写程序的编写者查看邮件登录页面的源HTML代码,去掉一些页面格式化标记之后,可以剥离出这个表单的源代码如下<table>tableseeoriginaldocumentpage17</column></row><table>根据上述源代码,程序编写者就可以知道输入域的名字与含义的对应关系如下输入域名字输入域含义Email登录者的电子邮件地址Passwd登录者的密码得知这个对应关系之后,程序编写者就可以编写出一个能够自动登录该网站的程序,或者对用户的密码进行穷举式猜测。它的核心代码可以用文字表示如下1.构造一个HTTP请求;2.在请求中加入参数,参数名称为Email,参数值为需要登录的用户的电子邮件地址;3.在请求中加入参数,参数名称为Passwd,参数值为登录密码;4.向网站提交该HTTP请求,完成登录,取得登录者身份;5.做只有登录者才能做的事情,比如开始论坛灌水。_但是,基于本发明的方法,所述机器人程序的编写者无法使用传统的通过查看表单HTML源代码人工识别输入域名字,并在机器人程序中固定编码输入域名字的方法实现机器人程序。因此本发明能够完全防止使用表单自动填写程序填写表单。一种极端的情况是,所述机器人程序的编写者可能通过再编写一个表单解析程序来从表单中解析出动态表单输入域的名字,并将这个名字作为机器人程序的输入。例如,采用本发明生成Web表单的源HTML代码为:_<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>对于这个Web表单,机器人程序的编写者设计的表单解析程序的工作原理可以如下所示:<table>tableseeoriginaldocumentpage18</column></row><table>只要网站不改变表单源代码的布局,即使输入域的名字始终在变化,所述表单解析程序也可以得到输入域的第二标识(即动态名字)与含义的对应关系,达到破解本发明的Web表单的目的。在这种情况下,本发明还包括步骤对所述Web表单输入域的第二标识进行变换处理,用以增加所述Web表单输入域的第二标识的隐蔽性。为使本领域技术人员更好地理解本发明,以下以一种使用javascript页面脚本技术增加输入域动态名字的隐蔽性的方法为例详细说明所述变换处理的过程。例如,原来的Web表单形式为:_<table>tableseeoriginaldocumentpage18</column></row><table>基于上述Web表单通过以上代码进行变换<script>functionwritelnput(label,type,name){document.write(label+'<inputtype=,"+type+'"name="'+name+'">');functiontransform(name){returnname.substring(22)+name.substring(0,22);</script><formaction="LoginAuth"method="post"><script>writelnput("电子由卩件("74bel3877bc63ddebd95a671fd65bef4"))writelnput("密码",("37204e8ela37bd9db48958ab73b9ed5d"))</script></form>需要说明的是,所述变换过程是通过程序自动完成的。首先,程序生成一个动态可逆的javascripttransform函数。在上述例子中提出了一个简单的字符串变换函数,在实际应用中这个变换函数可以任意复杂,而且这个函数也是动态的,每一次的变换算法的参数都不一样。其次,在输出表单输出域时,通过javascript函数writelnput来写,给writelnput函数提供的name参数是通过transform函数变换后的值,而给transform函数提供的值是所述Web表单表单输入域名字通过transform函数的逆变换生成的。',"text",transformpassword",transform经过上述变换处理,由于输入域的动态名字不再直接出现在表单HTML源码中,而是通过另一个动态javascript函数生成的,这样,机器人免則本发明的另一个优势在于,由于本发明只在服务器中执行相关步骤,不会改变用户使用现有Web表单的方法,也不会在现有技术的基础上额外增加用户的操作步骤,不会影响用户的操作体验。参考图3,是本发明一种通过Web表单获得用户交互数据的系统的结构框图,包括以下模块触发模块301:用于根据用户请求触发Web表单生成程序;第二标识生成;f莫块302:用于对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;表单生成模块303:用于根据所述Web表单输入域的第二标识生成Web表单;替换模块304:用于采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据;客户端305:用于显示所述Web表单,接收用户输入的表单数据,以及与服务器进行通讯。优选的是,所述第二标识生成模块302进一步包括构成单元和生成单元,其中所述构成单元用于将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;所述生成单元用于根据所述新字符串生成所述Web表单输入域的第二标识。优选的是,所述的系统还包括存储模块,用于存储所述Web表单输入域的第一标识和对应的第二标识。优选的是,所述的系统还包括预置模块、判断模块和记录模块,所述预置才莫块用于4艮据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;所述判断模块用于根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则调用所述第二标识生成模块重新生成所述Web表单输入域的第二标识;所述记录模块用于对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。优选的是,所述的系统还包括查找模块和删除模块,所述查找模块用于根据所述Web表单输入域的第二标识在所述映射表中查找第一标识;所述删除模块用于返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。优选的是,所述映射表为一个会话变量。优选的是,所述的系统还包括变换模块、用于对所述Web表单输入域的第二标识进行变换。参考图4,是应用图3所示系统优选地获得用户交互数据的流程图,包括以下步骤步骤401、根据用户请求触发Web表单生成程序;步骤402、对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;优选的是,通过以下子步骤生成所述Web表单输入域的第二标识子步骤Cl、将所述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表单荻得用户交互数据方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1.一种通过Web表单获得用户交互数据的方法,其特征在于,包括根据用户请求触发Web表单生成程序;对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;根据所述Web表单输入域的第二标识生成Web表单;客户端显示所述Web表单,接收用户输入的表单数据;采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。2、如权利要求l所述的方法,其特征在于,通过以下步骤生成所述Web表单输入域的第二标识将所述Web表单输入域的第一标识与时间戳值和随机字符串构成新字符串;根据所述新字符串生成所述Web表单输入域的第二标识。3、如权利要求2所述的方法,其特征在于,还包括存储所述Web表单输入域的第一标识和对应的第二标识。4、如权利要求l所述的方法,其特征在于,还包括根据所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系预置映射表;根据所述Web表单输入域的第二标识在所述映射表中查找,如果所述Web表单输入域的第二标识已经存在,则对应Web表单输入域的第一标识重新生成所述Web表单输入域的第二标识;对应所述Web表单输入域的第一标识记录所述Web表单输入域的第二标识。5、如权利要求4所述的方法,其特征在于,还包括根据所述Web表单输入域的第二标识在所述映射表中查找第一标识;返回所述第一标识,并在所述映射表中删除所述Web表单输入域的第二标识和所述Web表单输入域的第一标识的对应关系。6、如权利要求4或5所述的方法,其特征在于,所述映射表为一个会话变量。7、如权利要求l、2、3、4或5所述的方法,其特征在于,还包括对所述Web表单输入域的第二标识进行变换。8、一种通过Web表单获得用户交互数据的系统,其特征在于,包括触发模块用于根据用户请求触发Web表单生成程序;第二标识生成4莫块用于对应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、如权利要求10或11所述的系统,其特征在于,所述映射表为一个会话变量。14、如权利要求8、9、10、11或12所述的系统,其特征在于,还包括变换模块用于对所述Web表单输入域的第二标识进行变换。全文摘要本发明公开了一种通过Web表单获得用户交互数据的方法,其特征在于,包括根据用户请求触发Web表单生成程序;对应Web表单输入域的第一标识生成所述Web表单输入域的第二标识;根据所述Web表单输入域的第二标识生成Web表单;客户端显示所述Web表单,接收用户输入的表单数据;采用所述Web表单输入域的第一标识替换所述Web表单输入域的第二标识,获得用户交互数据。本发明可以有效防止Web表单地自动填写,保证网站系统的安全运行,不需要用户进行额外的操作,并且成本和风险较低。文档编号H04L29/06GK101227451SQ20071000077公开日2008年7月23日申请日期2007年1月19日优先权日2007年1月19日发明者立程申请人:阿里巴巴公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1