一种针对Web页面数据的摘要提取方法及检测方法转让专利

申请号 : CN201611234214.0

文献号 : CN106650504B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史红周梁英项定华段琼琼刘建飞

申请人 : 中国科学院计算技术研究所

摘要 :

本发明提供一种针对Web页面数据的摘要提取方法及检测方法,其中所述Web页面划分成不同层次,所述摘要提取方法包括:1)基于Web页面的输入数据,生成最低层次的摘要;2)基于前一层次的摘要,生成当前层次的摘要;3)重复步骤2),直到生成最高层次的摘要;4)根据全部层次的摘要,生成所述Web页面数据的Web摘要。通过本发明,可以分层次地对用户输入网页的数据提取摘要,以在再次访问该数据时,通过所提取的摘要确定网页中的哪一部分数据发生了改变,以及数据的位置是否发生了更改。

权利要求 :

1.一种针对Web页面数据的摘要提取方法,其中所述Web页面基于其页面布局划分成不同层次,所述方法包括:

1)基于Web页面的输入数据,生成最低层次的摘要;

2)对前一层次的摘要提取摘要,得到当前层次的摘要;

3)重复步骤2),直到生成最高层次的摘要;

4)根据全部层次的摘要,生成所述Web页面数据的Web摘要。

2.根据权利要求1所述的方法,其中所述Web页面基于其页面布局中的单元划分来确定所述不同层次,所述不同层次包括以下至少两个层次:与页面对应的层次、与域对应的层次、与区对应的层次;

其中,所述与区对应的层次低于所述与域对应的层次,所述与域对应的层次低于所述与页面对应的层次。

3.根据权利要求2所述的方法,其中步骤1)包括:对Web页面域中的输入数据提取摘要,生成域的摘要。

4.根据权利要求3所述的方法,其中步骤2)包括:根据所述Web页面的区中所包含的域,对其中的域的摘要提取摘要,生成区的摘要。

5.根据权利要求4所述的方法,其中步骤3)包括:根据所述Web页面中所包含的区,对其中的区的摘要提取摘要,生成页面的摘要。

6.根据权利要求5所述的方法,其中步骤4)包括:将生成的所述域的摘要、所述区的摘要、所述页面的摘要拼接成字符串,生成Web摘要。

7.根据权利要求6所述的方法,其中步骤4)还包括:在所述字符串中设置间隔符,间隔相邻的所述域的摘要和所述区的摘要和/或所述页面的摘要。

8.根据权利要求7所述的方法,其中步骤4)还包括:在所述字符串中为所述域的摘要和所述区的摘要和所述页面的摘要设置标识字段,以标识所述域和所述区和所述页面之间的层属关系。

9.根据权利要求8所述的方法,其中步骤4)中所述标识字段包括:所述域的编号及其所属区和/或页面的编号,和所述区的编号及其所属页面的编号,和

所述页面的编号。

10.一种基于权利要求1-9中任意一项方法,检测Web页面数据变化的方法,包括:

1)获得需要访问的Web页面数据及其相应的Web摘要;

2)采用与生成所述Web摘要相同的方法,对所获得的Web页面数据提取第二摘要;

3)将所述第二摘要与所述Web摘要进行比对,确定所获得的Web页面数据相较于所述输入Web页面的数据是否发生变化。

11.根据权利要求10所述的方法,其中步骤3)包括:将第二摘要与所述Web摘要中的对应字段进行直接比对:如不相同,则报告该字段所定位的数据发生异常。

12.根据权利要求11所述的方法,其中步骤3)包括:将第二摘要与所述Web摘要中的相应字段进行交叉比对:如所述Web摘要中的字段与所述第二摘要中的非对应字段发生了交换,则报告该两个字段所定位的数据发生顺序错乱。

13.一种检测用户输入Web页面的数据的变化的装置,其中所述Web页面划分成不同层次,所述装置包括:层次加密上传模块,用于基于Web页面的输入数据,生成最低层次的摘要;以及基于前一层次的摘要,生成当前层次的摘要,直到生成最高层次的摘要;以及根据全部层次的摘要,生成所述Web页面数据的Web摘要;

验证模块,用于对取回的数据提取第二摘要,并比对所述Web摘要与所述第二摘要,以检验取回的所述数据相较于所述输入数据是否发生变化。

说明书 :

一种针对Web页面数据的摘要提取方法及检测方法

技术领域

[0001] 本发明涉及计算机数据安全技术,尤其涉及Web页面的数据安全。

背景技术

[0002] 通常,在一个Web系统中包括前端网页和后端服务器,终端用户登录前端网页从而向后端服务器提交表单数据。在提交数据及后续存储过程中,存在表单数据发生不当改变的可能性,例如在无线传输过程中遭遇了噪声干扰,又例如管理员的误操作,以及黑客恶意篡改数据等。上述表单数据的改变,会导致通过前端网页再次呈现给用户的数据与用户原本提交的表单存在不一致的情况。尤其是在提交大量表单数据的情况下,用户将难以迅速地感知到数据发生了变化,从而为用户的业务带来损失。
[0003] 在现有技术中,为了克服上述缺陷,通常会采用摘要算法将用户所输入的全部数据作为一个整体进行校验。然而,上述方案并不能定位到是哪一块输入数据发生了改变,也不能检测出数据的顺序是否发生了错乱。

发明内容

[0004] 因此,本发明的目的在于克服上述现有技术的缺陷,提供一种针对Web页面数据的摘要提取方法,其中所述Web页面划分成不同层次,所述方法包括:
[0005] 1)基于Web页面的输入数据,生成最低层次的摘要;
[0006] 2)基于前一层次的摘要,生成当前层次的摘要;
[0007] 3)重复步骤2),直到生成最高层次的摘要;
[0008] 4)根据全部层次的摘要,生成所述Web页面数据的Web摘要。
[0009] 优选地,根据所述方法,其中步骤1)包括:
[0010] 对Web页面域中的输入数据提取摘要,生成域的摘要。
[0011] 优选地,根据所述方法,其中步骤2)包括:
[0012] 根据所述Web页面的区中所包含的域,对其中的域的摘要提取摘要,生成区的摘要;
[0013] 优选地,根据所述方法,其中步骤3)包括:
[0014] 根据所述Web页面中所包含的区,对其中的区的摘要提取摘要,生成页面的摘要。
[0015] 优选地,根据所述方法,其中步骤4)包括:
[0016] 将生成的所述域的摘要、所述区的摘要、所述页面的摘要拼接成字符串,生成Web摘要。
[0017] 优选地,根据所述方法,其中步骤4)还包括:
[0018] 在所述字符串中设置间隔符,间隔相邻的所述域的摘要和所述区的摘要和/或所述页面的摘要。
[0019] 优选地,根据所述方法,其中步骤4)还包括:
[0020] 在所述字符串中为所述域的摘要和所述区的摘要和所述页面的摘要设置标识字段,以标识所述域和所述区和所述页面之间的层属关系。
[0021] 优选地,根据所述方法,其中步骤4)中所述标识字段包括:
[0022] 所述域的编号及其所属区和/或页面的编号,和
[0023] 所述区的编号及其所属页面的编号,和
[0024] 所述页面的编号。
[0025] 并且,本发明还提供了一种基于上述任意一项方法,检测Web页面数据变化的方法,包括:
[0026] 1)获得需要访问的Web页面数据及其相应的Web摘要;
[0027] 2)采用与生成所述Web摘要相同的方法,对所获得的Web页面数据提取第二摘要;
[0028] 3)将所述第二摘要与所述Web摘要进行比对,确定所获得的Web页面数据相较于所述输入Web页面的数据是否发生变化。
[0029] 优选地,根据所述方法,其中步骤3)包括:
[0030] 将第二摘要与所述Web摘要中的对应字段进行直接比对:
[0031] 如不相同,则报告该字段所定位的数据发生异常。
[0032] 优选地,根据所述方法,其中步骤3)包括:
[0033] 将第二摘要与所述Web摘要中的相应字段进行交叉比对:
[0034] 如所述Web摘要中的字段与所述第二摘要中的非对应字段发生了交换,则报告该两个字段所定位的数据发生顺序错乱。
[0035] 以及,一种检测用户输入Web页面的数据的变化的装置,其中所述Web页面划分成不同层次,所述装置包括:
[0036] 层次加密上传模块,用于基于Web页面的输入数据,生成最低层次的摘要;以及基于前一层次的摘要,生成当前层次的摘要,直到生成最高层次的摘要;以及根据全部层次的摘要,生成所述Web页面数据的Web摘要;
[0037] 验证模块,用于对取回的数据提取第二摘要,并比对所述Web摘要与所述第二摘要,以检验取回的所述数据相较于所述输入数据是否发生变化。
[0038] 与现有技术相比,本发明的优点在于:
[0039] 能够根据网页的结构分层次地对用户输入网页的数据提取摘要,以在再次访问该数据时,通过所提取的摘要确定网页中的哪一部分数据发生了改变,以及数据的位置是否发生了更改。从而为用户数据的一致性与完整性验证提供支持,即便是在用户输入大量数据的情况下,也可以迅速地向用户报告所访问的数据发生了何种改变。

附图说明

[0040] 以下参照附图对本发明实施例作进一步说明,其中:
[0041] 图1是根据本发明的一个实施例,对Web页面数据提取摘要的流程图;
[0042] 图2示出了对用户输入Web页面的数据的摘要以及从服务器下载的数据的摘要进行比较的一个示例;其中,s0、s1、s2、分别表示用户输入该Web页面数据的域摘要、区摘要、页面摘要,s0’、s1’、s2’分别为从服务器下载的数据的域摘要、区摘要、页面摘要,网页1包含区1和区2,区1包含域1、2,区2包含域3、4;
[0043] 图3是根据本发明的一个实施例,检验Web页面所上传数据的变化的方法的流程图;
[0044] 图4是一个典型的有大量表单需用户填写的web页面简化样例,其中依据该web页面的结构,示出了表单域ID值的取值规则;
[0045] 图5是根据本发明的一个实施例检验Web页面所上传数据变化的模块示意图。

具体实施方式

[0046] 下面结合附图和具体实施方式对本发明作详细说明。
[0047] 通常,为了验证Web页面的数据是否发生改变,会针对需要上传至服务器的数据提取第一摘要;在从服务器下载数据后,对所下载的数据提取第二摘要;将该第一摘要与该第二摘要进行比对,如果两者不一致,则说明数据发生改变。本申请文件中的“提取”指的是将数据作为摘要算法的输入,将其输出作为摘要。
[0048] 然而,现有技术往往是针对用户输入Web页面的全部数据来提取摘要,而这种方式只能用于判断上传至服务器的数据是否发生改变,不能用于确定Web页面中的哪一部分数据发生了改变,也不能确定数据发生了什么样的改变。例如,不能确定原本处于Web页面中某一特定域的数据被修改到了该Web页面的另一个域的位置上。当用户输入大量数据的情况下,将很难由用户自行判断发生了这些改变。
[0049] 对此,发明人通过研究发现,通常情况下,Web页面具有通用的结构划分,即在一个Web页面中包含多个区,每个区中包含多个域,图4示出了一个web页面的简化样例。可以将域看作是Web页面结构中最低的层次,区属于比域高一级的层次,而页面则是更高层次。对此,发明人认识到可以通过按照域、区、Web页面这几个层次逐步地提取第一摘要。当再次访问用户输入该Web页面的数据时,采用相同的规则分层次地对通过访问获得的数据提取摘要(本申请文件中称为第二摘要),并将第一摘要和第二摘要进行比对,从而可以根据比对的结果判断所访问的数据是否发生改变,以及对发生改变的数据进行定位,以及判断定位到的数据发生了何种改变。
[0050] 下面将通过具体的实施例,详细介绍根据本发明的针对Web页面数据提取摘要的方法。根据本发明的一个实施例,所述方法包括:
[0051] S1.对用户向Web页面的域中输入的数据,提取域的摘要。
[0052] 在这个步骤中,可以针对各个域,将所输入的数据作为摘要算法的输入。在本发明中可以采用任一现有的摘要算法,例如CRC32或MD5算法。
[0053] 参考图2以及图4中的示例,可以针对网页1中的全部4个域分别提取摘要,生成与域1、2、3、4分别对应的摘要字符串a、b、c、d。
[0054] S2.在生成了域的摘要之后,根据区中所包含的域,对相应的域的摘要提取摘要,以作为区的摘要。
[0055] 在这个步骤中,可以针对各个区,将所述区包含的域的摘要作为执行摘要算法的输入,以获得所述区的摘要。其中,可以针对所述区包含的全部域的摘要提取摘要,也可以仅对所包含的部分域的摘要提取摘要。
[0056] 根据本发明的一个实施例,如果通过对区中包含的部分域的摘要提取摘要,而非针对用户输入区中的全部数据提取摘要,在实现分层次地提取摘要的同时,还可以大大缩减算法的复杂度。然而,应当理解,在区中所输入的数据量较少的情况下,也可以针对用户输入区中的全部数据提取区的摘要。
[0057] 仍以图2以及图4为例,可以将字符串a和b作为摘要算法的输入,提取区1的摘要e;将字符串c和d作为摘要算法的输入,提取区2的摘要f。
[0058] S3.在生成了区的摘要之后,根据所述Web页面中所包含的区,对相应的区的摘要提取摘要,以作为页面的摘要。
[0059] 根据本发明的一个实施例,与步骤S2相类似,步骤S3同样通过将页面中所包含的部分区的摘要用作摘要算法的输入来生成页面的摘要,达到缩减算法复杂度的效果。
[0060] 仍以图2为例,可以针对字符串e和f提取区1的摘要g。
[0061] S4.根据所获得的域的摘要、区的摘要、页面的摘要,得到用于检验所述Web页面数据发生的变化的Web摘要。
[0062] 根据本发明的一个实施例,将在步骤S1-S3中生成的域的摘要、区的摘要、页面的摘要拼接成一个字符串。
[0063] 继续以图2为例,a、b、c、d、分别为域1、2、3、4的摘要,它们的集合构成了域摘要的字符串s0;区1的摘要e和区2的摘要f构成了区摘要的字符串s1;网页1的摘要g为字符串s2。所述s0、s1、s2共同组成了Web摘要(即图中的A)。
[0064] 在实际使用拼接而成的Web摘要来检验Web页面数据发生的变化时,需要从Web摘要中识别出其中的页面摘要、区摘要、域摘要的字段,并且还需要确定页面、区、域之间的包含关系。下面将通过具体的实施例介绍如何识别出Web摘要中的各个字段。
[0065] 根据本发明的一个实施例,在通过摘要算法获得的摘要为固定长度的情况下,直接将全部页面摘要、区摘要、域摘要拼接成一个字符串,以作为Web摘要。以采用CRC32算法为例,通过该算法生成的摘要长度均为32比特,可采用8位的十六进制数来表示;参考图2中的示例,可以生成32位长度的s0、16位长度的s1、8位长度的s2,即总共56位长度的Web摘要(A)。当需要使用该Web摘要时,可以从该Web摘要中每次读取固定长度的字段以识别其中的页面摘要、区摘要、域摘要。因此,采用直接拼接多层次摘要以生成Web摘要的方式,可以在生成Web摘要时所使用的摘要算法的输出为固定长度、且在使用Web摘要时已知Web摘要中字段的排列顺序的情况下,实现对Web摘要中页面摘要、区摘要、域摘要的识别。
[0066] 此种方式的复杂度较低,尤其适用于Web页面结构相对简单的情况。对于Web页面结构较为复杂的情况,更适合采用设置间隔的方式来实现对A中各个字段的识别。
[0067] 根据本发明的一个实施例,采用间隔符的方式来间隔页面摘要、区摘要、域摘要的字段,将全部页面摘要、区摘要、域摘要、以及间隔符拼接成一个字符串,以作为Web摘要。以采用空格作为间隔符为例,可以采用一个空格来间隔属于不同的区的域的摘要字段,以及间隔属于不同页面的区的摘要字段,采用两个空格来间隔域的摘要和区的摘要,采用三个空格来间隔区的摘要和页面的摘要。再次以图2为例,a、b对应于区1而c、d对应于区2,因此在b、c之间增加一个空格;d属于域的摘要而e为区的摘要,因此在d、e之间增加两个空格;类似的,在f、g之间增加三个空格。由此,Web摘要A的字符串应当为:
[0068] “ab(空格)cd(空格空格)ef(空格空格空格)g”。
[0069] 应当理解,在生成Web摘要时,还可以进一步在相邻的摘要字段之间增加间隔符,例如,进一步在a、b之间、c、d之间、和e、f之间增加其他间隔符,使得即便各个摘要字段并非固定长度,也可以正确地区分出不同的摘要字段。
[0070] 当需要使用该Web摘要时,可以根据所读取到的间隔符,例如一个空格、两个空格、或三个空格等,确定正在读取的字段属于哪一层次的摘要字段,以及区分出属于相同层次的摘要字段。
[0071] 采用设置间隔符的方式来生成Web摘要,可以在使用Web摘要时已知Web摘要中字段的排列顺序的情况下,实现对Web摘要中页面摘要、区摘要、域摘要的识别。
[0072] 根据本发明的进一步的实施例,还提供了一种基于间隔的Web摘要生成方式,使得在使用Web摘要时即便不知道Web摘要中字段的排列顺序,也能实现对Web摘要中页面摘要、区摘要、域摘要的识别。在该实施例中,针对每个域和/或区和/或页面的摘要字段设置其层属关系的标识(这里的层属关系指的是域、区、页面之间的包含关系,例如一个域属于哪个区及哪个页面,一个区属于哪个页面),将全部页面摘要、区摘要、域摘要、以及相应的标识拼接成一个字符串,以作为Web摘要。其中,针对域所设置的标识可以采用用于标识该域的编号、该域所属区和所属网页的ID,针对区所设置的标识可以采用用于标识该区的编号、该区所属网页的ID,针对页面所设置的表述可以采用用于标识该页面的编号。在图4中示出了针对域设置的ID的示例,可以看出域1处于网页1的区1中,为域1所设置的ID为d1s1p1(即domain 1section 1page 1),表示表示域1为页1的区1中编号为1的域,并且域2、3、4也采用类似的方式设置了ID值,同样也可以为区1设置ID值s1p1,为区2设置ID值s2p1,为页面1设置ID值p1(图中未示出)。参考图2,可以将图4中的上述ID值设置在Web摘要(A)中每个域的摘要字段之前或之后,例如,将Web摘要(A)设置为:
[0073] “a(d1s1p1)b(d2s1p1)c(d3s2p1)d(d3s2p1)e(s1p1)f(s2p1)g(p1)”。
[0074] 当需要使用该Web摘要时,可以根据所读取到的ID值,确定摘要字段的身份,以及页面、区、域之间的所述关系。
[0075] 采用设置层属关系的标识的方式来生成Web摘要,可以应对任意复杂程度的Web页面结构,并且不必向使用该Web摘要对数据进行验证的一方传递任何有关字段排列顺序的信息,便可以实现对Web摘要中页面摘要、区摘要、域摘要的识别。此种生成Web摘要方式,可以采用任意顺序排列其中的各个摘要字段,相较于前述实施例的方案其具有更高灵活性和安全性。
[0076] 在采用通过该实施例生成的Web摘要对数据进行一致性验证时,还应当在对用户输入Web页面的数据进行上传时,将上述针对各个域和/或区和/或页面设置的标识与所述数据之间的对应关系一并上传,具体的验证方法将在下述实施例中详细介绍。此外,根据本发明的其他实施例,还可以将上述对域和/或区和/或页面进行标识的方式与上述采用间隔符的方式相结合。
[0077] 下面将通过具体的实施例详细介绍根据本发明的验证Web页面所上传数据的变化的方法,采用下述方法可以验证当再次访问数据时,该数据是否发生改变,以及在发生改变时,对发生改变的部分进行定位、判断数据是否出现顺序错乱。
[0078] 参考图3,所述方法包括:
[0079] 步骤1.接收用户针对Web页面所输入的数据。
[0080] 步骤2.针对Web页面的结构,对用户输入的数据分层次地生成Web摘要(例如图2示出的摘要A)。可以采用本发明的上述任意实施例中的方案来生成Web摘要A。应当理解,根据需要,在本发明中还可以仅执行针对域和区、或仅针对域和页面、或仅针对区和页面来提取摘要,以及可以仅针对用户填写到Web页面的数据中的部分来提取摘要,以进一步降低方法的复杂度。
[0081] 步骤3.根据本地的密钥,将所生成的Web摘要(即图2中的A)加密为密文。所述本地的密钥可以是用户输入的密码,也可以是由本地应用生成的密码,本地密钥将不会被上传至服务器。通过加密,可以保证所生成的摘要的安全性。
[0082] 步骤4.将用户针对Web页面所输入的数据上传至服务器。
[0083] 根据本发明的一个实施例,对于在步骤2中采用上述直接拼接摘要字段作为Web摘要(A)的方案,在步骤4中,将Web摘要(A)中字段的排列顺序、以及Web页面结构的层属关系上传至服务器。例如参考图2,将Web摘要A的字段顺序即域1、域2、域3、域4、区1、区2、页面1,以及域1、2属于区1、域3、4属于区2、区1、2属于页面1的层属关系,以及每次读取摘要字段的长度8位,上传并保存在服务器上。
[0084] 根据本发明的另一个实施例,对于在步骤2中采用上述在Web摘要(A)中设置间隔符的方案,在步骤4中,将Web摘要(A)中字段的排列顺序上传至服务器。例如参考图2,将Web摘要A的字段顺序即域1、域2、域3、域4、区1、区2、页面1,以及所采用的各个间隔符的含义,例如采用一个空格、两个空格、三个空格等分别用于间隔哪些字段,上传并保存在服务器上。
[0085] 根据本发明的再一个实施例,对于在步骤2中采用上述在Web摘要(A)中设置ID的方案,在步骤4中,将相应的ID与域和/或区和/或页面的对应关系上传至服务器,例如参考图2和图4,在用户输入域1的数据中增加d1s1p1的ID,将该ID随数据一并上传至服务器,相应地对用户输入其他域和/或区和/或页面的数据也增加对应的ID。
[0086] 在此步骤4中,可以将所述密文也上传至服务器,也可以针对用户再次登录时使用同一台电脑的情况而仅将Web摘要(A)或其密文保存在本地。
[0087] 在完成了上述步骤1-4之后,便完成了对用户所输入的数据进行提取摘要以及将用户所输入的数据上传至服务器的步骤。
[0088] 接下来,将介绍采用本发明的方法来判断所期望再次访问的数据发生了何种改变。
[0089] 步骤5.从服务器获取用户针对Web页面所输入的至少部分数据。根据本发明的一个实施例,这里不必下载全部数据,可以仅获取需要访问的数据内容。在密文也被上传至服务器中的情况下,从服务器下载所述密文。
[0090] 步骤6.采用本地的密钥,对密文进行解密,还原出Web摘要(即图2所示出的摘要A’)(在没有将密文上传至服务器的情况下,获取Web摘要A)。
[0091] 步骤7.采用与步骤2中相同的提取摘要的规则,对在步骤5中从服务器获取的所述数据提取摘要,以获得图2所示出的摘要B。
[0092] 这里所述相同的提取规则指的是,与在生成Web摘要(A)时,步骤5中所获取的数据相对应的部分的规则。例如,参考图2,根据需要,仅从服务器下载了与域1对应的数据,则在步骤7中采用与生成摘要a相同的规则对所下载的数据提取摘要a’,并将摘要a’作为生成的摘要B。
[0093] 步骤8.将Web摘要A’(或A)与摘要B进行比对,以确定所述数据发生了何种改变。
[0094] 为了进行比对,应当首先从Web摘要A’(或A)中识别出其中的页面摘要、区摘要、域摘要的字段,并且确定页面、区、域之间的包含关系。
[0095] 根据本发明的一个实施例,对于在步骤2中采用上述直接拼接摘要字段作为Web摘要(A)的方案,在步骤8中,根据Web摘要A’(或A)中字段的排列顺序,每次读取固定长度的摘要字段,识别出Web摘要A’(或A)中的页面摘要、区摘要、域摘要。以图2为例,逐次读取8位字段,首先读取Web摘要A中后8位字段作为网页1的摘要g,继续读取其余字段中的后8位字段作为区2的摘要f,以及继续读取区1的摘要e、域4的摘要d,依次类推,从而确定全部摘要字段a-g。
[0096] 根据本发明的一个实施例,对于在步骤2中采用上述在Web摘要(A)中设置间隔符的方案,在步骤8中,通过读取到的间隔符,以及根据Web摘要A’(或A)中字段的排列顺序,识别出Web摘要A’(或A)中的页面摘要、区摘要、域摘要。
[0097] 以图2为例,假设Web摘要A的字符串为:“ab(空格)cd(空格空格)ef(空格空格空格)g”,并且在生成该Web摘要时采用CRC32算法。则在读取该Web摘要A时,首先将读取的后8位字段作为网页1的摘要g;在读到三个连续的空格时,确定随后的字段对应于区的摘要,继续读取其余字段中的后8位字段作为区1的摘要f,以及随后的8位作为区2的摘要e;类似地,在读到两个连续的空格时,确定随后的字段对应于域的摘要,同样地通过读取每8位字段来确定域4的摘要d和域3的摘要c,在没有读取到单独的一个空格时,确定d和c对应于区2,当读取到单独的一个空格时,确定随后的域摘要b和a对应于区1。
[0098] 同样以图2为例,假设Web摘要A的字符串为:“a(#)b(空格)c(#)d(空格空格)e(#)f(空格空格空格)g”。则在读取该Web摘要A时,从该Web摘要的末位往前读取,将遇到第一个间隔符即连续的三个空格之前的内容作为网页1的摘要g;将在其余字段中遇到第二个间隔符即#之前的内容作为区1的摘要f,将在遇到连续的两个空格之前的内容作为区2的摘要e;类似地,分别根据间隔符确定域4、3、2、1的摘要d、c、b、a。
[0099] 根据本发明的一个实施例,对于在步骤2中采用上述在Web摘要(A)中设置ID的方案,在步骤8中,通过读取到的ID,识别出Web摘要A’(或A)中的页面摘要、区摘要、域摘要,以及Web页面结构的层属关系。
[0100] 参考图2和图4,假设Web摘要A的字符串为:“a(d1s1p1)b(d2s1p1)c(d3s2p1)d(d3s2p1)e(s1p1)f(s2p1)g(p1)”。则在读取该Web摘要A时,从该Web摘要的末位往前读取,根据读取到的标识p1确定哪些字段属于g,并且g是页面1的摘要,类似地,读取区2、1、域4、3、2、1的摘要字段f、e、d、c、b、a,以及区1、2属于页面1,域3、4属于区2,域1、2属于区1。
[0101] 在通过上述实施例的方式,确定Web摘要A’(或A)中的页面摘要、区摘要、域摘要的字段,以及确定页面、区、域之间的包含关系之后,可以将摘要B与所述Web摘要A’(或A)进行比对。通过比对,定位到发生错误的区和/或域,以及是否出现数据的顺序发生错乱的情况。
[0102] 下面将继续参考图2,介绍进行比对的方法。如图2所示,其中a’、b’、c’、d’、e’、f’、g’为在摘要B中的域1、2、3、4的摘要、区1、2的摘要、以及网页1的摘要,分别与Web摘要A’(或A)中的a、b、c、d、e、f、g相对应。
[0103] 在进行比对时,首先对Web摘要A’(或A)与摘要B进行直接比对:
[0104] 如果g=g’,则认为用户数据没发生改变,停止校验,并向用户报告数据未发生异常;
[0105] 如果g≠g’,则进一步比较网页1中的区摘要,
[0106] 若f≠f’,则进一步比较区2中的域摘要,
[0107] 若d≠d’,则向用户报告网页1区2域4中的数据发生异常,
[0108] 若c≠c’,则向用户报告网页1区2域3中的数据发生异常,
[0109] 若e≠e’,则进一步比较区1中的域摘要,
[0110] 若b≠b’,则向用户报告网页1区1域2中的数据发生异常,
[0111] 若a≠a’,则向用户报告网页1区1域1中的数据发生异常。
[0112] 在进行比对时,除上述直接比对之外,还可以在数据发生异常的情况下,进一步进行交叉比较:
[0113] 如果f≠f’并且e≠e’,则进行以下比较:
[0114] 若e=f’且f=e’,则向用户报告区1的数据和区2的数据发生顺序错乱;
[0115] 若a=c’且c=a’,则向用户报告区1域1部分的数据和区2域3部分的数据发生顺序错乱;
[0116] 若a=d’且d=a’,则向用户报告区1域1部分的数据和区2域4部分的数据发生顺序错乱;
[0117] 若b=c’且c=b’,则向用户报告区1域2部分的数据和区2域3部分的数据发生顺序错乱;
[0118] 若b=d’且d=b’,则向用户报告区1域2部分的数据和区2域4部分的数据发生顺序错乱;
[0119] 若a=b’且b=a’,则向用户报告区1域1部分的数据和区1域2部分的数据发生顺序错乱;
[0120] 若c=d’且d=c’,则向用户报告区2域3部分的数据和区2域4部分的数据发生顺序错乱;
[0121] 如果f≠f’并且e=e’,则进行以下比较:
[0122] 若c=d’且d=c’,则向用户报告区2域3部分的数据和区2域4部分的数据发生顺序错乱;
[0123] 若c=d’且d≠c’,则向用户报告原本位于区2域3部分的数据被更改到区2域4的位置,并且区2域3部分的数据在顺序发生错乱后又发生了篡改;
[0124] 若d=c’且c≠d’,则向用户报告原本位于区2域4部分的数据被更改到区2域3的位置,并且区2域4部分的数据在顺序发生错乱后又发生了篡改;
[0125] 如果f=f’并且e≠e’,则进行以下比较:
[0126] 若a=b’且b=a’,则向用户报告区1域1部分的数据和区1域2部分的数据发生顺序错乱;
[0127] 若a=b’且b≠a’,则向用户报告原本位于区1域1部分的数据被更改到区1域2的位置,并且区1域2部分的数据在顺序发生错乱后又发生了篡改;
[0128] 若b=a’且a≠b’,则向用户报告原本位于区1域2部分的数据被更改到区1域1的位置,并且区1域1部分的数据在顺序发生错乱后又发生了篡改。
[0129] 通过步骤8中的上述比对,可以向用户报告从服务器所下载的数据相较于用户原本输入Web页面的数据发生了何种改变。
[0130] 在本发明的上述实施例中,采用本地的密钥对摘要进行加密,所述密钥不被上传至服务器,使得不存在因上传服务器而导致摘要泄露或摘要被篡改的问题。
[0131] 下面以采用上述在Web摘要(A)中设置ID的方案为例,通过一个完整的实例详细介绍对数据进行验证的方法。假设,参考图4,用户针对Web页面的域1、2、3、4分别输入了:姓名、年龄、电话号码、性别,所输入的数据内容为“张三”、“23”、“8888888”、“男”。根据用户所输入的内容,提取Web摘要A,“a(d1s1p1)b(d2s1p1)c(d3s2p1)d(d3s2p1)e(s1p1)f(s2p1)g(p1)”。将用户输入的数据及相应的标识“张三d1s1p1 23d2s1p1 8888888d3s2p1男d4s2p1”上传至服务器。当需要再次访问数据时,根据需要仅下载“张三d1s1p1”、“8888888d3s2p1”、和“男d4s2p1”。对下载的数据提取摘要,例如对“张三”提取摘要获得“a’”,相应地对“8888888”和“男”提取摘要“c’”和“d’”,作为摘要B(参考图2,a’、c’、d’是摘要B的一部分)。读取Web摘要A的内容,将Web摘要A中与标识“d1s1p1”、“d3s2p1”、“d3s2p1”相对应的摘要字段“a”、“b”、“c”与通过对下载数据进行摘要提取而获得的“a’”、“b’”、“c’”进行直接比对以及交叉对比,从而验证姓名数据是否发生了改变。
[0132] 根据本发明的上述方法,对于采用设置ID而生成Web摘要A的方案,尤其适用于针对用户输入的数据需要在不同结构的Web页面之间进行传递和展示的情况。这是由于再次访问数据的Web页面可能仅需下载部分数据,其展示数据的方式也可能不同于用户首次输入数据所采用的Web页面。该方案使得需要访问数据的Web页面可以从服务器处仅获取需要展示的那一部分数据,并根据需要将获取的数据展示在相应的位置上。
[0133] 除上述方法之外,本发明还提供了一种检验Web页面所上传数据的变化的装置。如图5所示,根据本发明的装置,包括:层次加密上传模块11,和验证模块12。
[0134] 所述层次加密上传模块11,用于针对Web页面的结构分层次地提取摘要(A),以及将用户输入Web页面的数据上传至服务器。所述层次加密上传模块11还被用于采用本地密钥对所述摘要(A)进行加密,以将加密后的密文上传至服务器。如前文所述,在本发明中可以采用上述方法,按照域、区、Web页面这几个层次逐步地来生成摘要。例如,可以针对每个域将用户输入的数据作为摘要算法的输入,生成能够代表该域中所输入数据特点的摘要s0;将一个区中的全部多个域的摘要作为摘要算法的输入,生成代表该区的摘要s1;将一个Web页面中的全部多个区的摘要作为摘要算法的输入,生成代表该Web页面的摘要s2;最后,将s0、s1和s2拼接成一个字符串,以进行加密和上传。
[0135] 所述层次加密上传模块11可以包括以下几个子模块。
[0136] 提取摘要模块111,用于根据用户填写的数据处于Web页面上的位置,生成针对域的摘要s0,针对区的摘要s1以及针对页面的摘要s2。在本发明中,所述提取摘要模块111还可以将所述摘要s0、s1和s2拼接成一个字符串A,例如A=s0s1s2。应当理解,根据需要,所述提取摘要模块111可以仅针对域提取摘要,或仅针对域和区提取摘要,或仅针对域和页面提取摘要,或仅针对区和页面提取摘要,以及可以仅针对用户填写的数据中的部分来提取摘要。
[0137] 摘要加密模块112,用于采用本地密钥对由提取摘要模块111生成的摘要进行加密,以生成密文。所述本地密钥可以是由用户输入的密码,也可以是由本地应用生成的密码,本地密钥将不会被上传至服务器。进行加密的方式可以是任意现有的对称加密算法,只有采用密钥才可以将经过加密的密文还原为摘要。通过加密,可以保证所生成的摘要的安全性。
[0138] 如前文所述,在本发明中既可以将摘要与用户数据一起上传至服务器,也可以不将所述摘要上传至服务器,而仅将其保存在本地。对于将摘要保存在本地的情况,也可以不设置摘要加密模块112。
[0139] 上传模块113,用于将用户填写的数据上传至服务器。所述上传模块113还可以用于将由摘要加密模块112生成的密文上传至服务器。应当理解,优选地将所述数据与所述密文分开上传或分开保存至不同的服务器,例如,将所述密文上传至管理员无修改权限的服务器中,以保证密文尽可能地不发生改变。
[0140] 除上述层次加密上传模块11之外,本发明的装置还包括验证模块12。
[0141] 所述验证模块12,用于在用户再次访问上传至服务器的数据时,对从服务器取回的数据提取摘要(B),并将与上传至服务器时的数据对应的摘要(A)进行比对,以检验所取回的数据发生的变化。所述验证模块12提取的摘要B优选地采用与所述摘要A相同的摘要提取规则,应当理解在从服务器取回的数据为用户上传数据的子集时,可以仅采用与所下载数据部分相对应的摘要提取规则。并且,在所述层次加密上传模块11将对摘要A加密后的密文上传至服务器的情况下,所述验证模块12还用于对从服务器取回的密文进行解密,以获得摘要(A’),并将摘要B与摘要A’进行比对,以检验所取回的数据发生的变化。
[0142] 所述验证模块12可以包括以下几个子模块。
[0143] 下载模块121,用于从服务器取回用户填写进Web页面的数据;以及,在对摘要A进行加密的密文上传至服务器的情况下,用于从服务器取回所述密文。
[0144] 摘要解密模块122,用于在摘要经过加密的情况下,采用本地密钥对密文进行解密,以获得摘要A’(在没有将密文上传至服务器的情况下,解密获得摘要A)。
[0145] 摘要重提取模块123,用于根据与所述提取摘要模块111中相同的提取摘要的规则,对由下载模块121取回的用户填写进Web页面的数据提取摘要B。
[0146] 检验一致性模块124,用于将所述摘要A’(在没有将摘要上传至至服务器的情况下,将所述摘要A)与由所述摘要重提取模块123生成的所述摘要B进行比对,并根据所述摘要A’(或A)和所述摘要B的一致性来确定上传的数据发生了何种变化。当A’≠B时,可以分层次地对A’和B进行比对,并根据不一致的字段所代表的在Web页面中的位置,来判断上传的数据发生了何种变化。
[0147] 假设,A’=s0s1s2,其中s0、s1和s2分别表示Web页面的域摘要、区摘要和页面摘要;B=s0’s1’s2’,其中s0’、s1’和s2’分别表示Web页面的域摘要、区摘要和页面摘要。图2示出了A’和B的字符串示意图,参考前一实施例中的所述方法,可以对A’和B中的页面1的摘要、区1、2的摘要、域1、2、3、4的摘要进行直接比对以及交叉比对,从而确定上传的数据发生了何种变化。
[0148] 通过这样的比对,可以利用所述检验一致性模块124定位发生异常数据所处的位置,以及检测数据的顺序是否发生了错乱。
[0149] 通过上述实施例可以看出,本发明通过根据网页的结构,分层次地对用户输入网页的数据提取摘要,使得在通过服务器再次访问用户所输入数据时,可以利用所提取的摘要确定网页中的哪一部分数据发生了改变,以及数据的位置是否发生了更改,同时,即使需要用户数据在不同web页面上进行传递和展示或是只需要部分特定用户数据的情况下,本发明依旧有效。由此,为用户数据的一致性与完整性验证提供了支持,使得更容易发现黑客恶意篡改的痕迹,以及由管理员误操作导致的用户数据改变。并且,本发明还对摘要部分进行本地加密,来提高摘要的安全性。根据本发明的方案,即便是在用户输入大量数据的情况下,也可以迅速地向用户报告数据发生了何种改变。
[0150] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,例如本发明并不限制向所述Web页面输入数据的方式,除用户手动输入之外,还可以采用诸如自动读取数据的方式进行数据的输入。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。