发明内容
本发明所要解决的技术问题是提供一种通过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表单获得用户交互数据的方法的流程图,包括以下步骤:
步骤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表单获得用户交互数据方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。