数据混淆方法、装置和电子设备与流程

未命名 08-02 阅读:140 评论:0


1.本发明涉及信息安全技术领域,尤其涉及一种数据混淆方法、装置和电子设备。


背景技术:

2.随着互联网的快速发展,各式各样的网页(web)应用也越来越广泛,越来越多企业机构将业务功能通过web应用向用户提供,这也导致越来越多的黑客致力于研究如何通过web进行攻击。由于web的开放特性,前端代码暴露在浏览器中,可被轻易复制盗用,而且黑客若通过前端代码知晓前端逻辑,可伪装成正常用户实施恶意行为。除此之外,各种自动化工具可通过代码进行漏洞探测与攻击等行为,对服务器造成威胁。
3.因此,在web安全防护中,对于前端代码的保护不容忽视。因此,对于本领域技术人员,如何实现对前端代码的保护是需要解决的问题。


技术实现要素:

4.本发明提供一种数据混淆方法、装置和电子设备,用以实现对前端代码的保护,提高了代码的安全性。
5.本发明提供了一种数据混淆方法,应用于网页web应用防护系统,所述网页web应用防护系统分别和客户端以及服务器连接,包括:响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;在所述web页面内容包括js代码的情况下,对所述js代码进行混淆,并将混淆后的js代码发送至所述客户端;响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;响应于客户端发送的第二请求,将解混淆数据发送至所述客户端,并从所述服务器获取所述js文件;对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。
6.根据本发明提供的一种数据混淆方法,所述从所述服务器获取web页面内容之后,所述方法还包括:获取所述web页面内容的长度;若所述长度不为零,则获取所述web页面内容的类型;若所述web页面内容的类型为文本方式的网文文件,则在所述web页面内容中插入指示信息;所述指示信息用于向所述客户端指示所述混淆后的js代码对应的解混淆数据的信息。
7.根据本发明提供的一种数据混淆方法,所述响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端,包括:
响应于所述客户端发送的所述第一请求,将所述解混淆数据对应的超文本标记语言html文件名进行转换,得到所述解混淆数据的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第一匹配结果;在所述第一匹配结果表征成功时,将所述混淆后的js代码对应的解混淆数据发送至所述客户端。
8.根据本发明提供的一种数据混淆方法,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端之后,还包括:响应于所述客户端发送的所述第一请求,从所述服务器中获取所述js文件;将所述js文件中的js代码进行混淆,并将混淆后的js文件发送至所述客户端。
9.根据本发明提供的一种数据混淆方法,所述对所述js文件中的js代码进行混淆,包括:若所述js文件的长度不为零,则确定所述js文件的类型;若所述js文件的类型为文本方式的脚本文件,则获取预设链表中任一节点的标记位;所述标记位用于表示所述节点在所述预设链表中的位置;所述任一节点用于存储所述js文件的任一js代码段;当存在目标节点,所述目标节点的标记位表征所述目标节点为所述预设链表中最后节点时,以节点为单位进行所述js文件的混淆,并将混淆后的js文件发送至所述客户端。
10.根据本发明提供的一种数据混淆方法,所述方法还包括:在处理所述web页面内容或处理所述js文件中包括的响应头信息时,将所述web页面内容或所述js文件中的长度字段置空。
11.本发明提供了一种数据混淆方法,应用于客户端,所述客户端通过网页web应用防护系统和服务器连接,包括:向所述网页web应用防护系统发送web页面内容请求;接收所述网页web应用防护系统响应于所述web页面内容请求发送的web页面内容;在所述web页面内容包括混淆后的js代码的情况下,向所述网页web应用防护系统发送第一请求;接收所述混淆后的js代码对应的解混淆数据;所述解混淆数据由所述网页web应用防护系统响应于所述第一请求发送的;或,在所述web页面内容包括js文件的信息的情况下,向所述网页web应用防护系统发送第二请求;接收解混淆数据和所述js文件中的混淆后的js代码;所述解混淆数据和所述js文件中的混淆后的js代码由所述网页web应用防护系统响应于所述第二请求发送的;利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
12.根据本发明提供的一种数据混淆方法,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;
所述接收所述混淆后的js代码对应的解混淆数据之后,所述方法还包括:接收所述网页web应用防护系统发送的js文件中混淆后的js代码。
13.根据本发明提供的一种数据混淆方法,所述利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载,包括:将解混淆数据对应的html文件名进行转换,得到所述解混淆数据所属的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第二匹配结果;在所述第二匹配结果表征成功时,利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
14.本发明还提供了一种数据混淆装置,应用在网页web应用防护系统上,包括:第一发送模块、混淆模块和第一接收模块,其中:所述第一接收模块,用于响应于客户端发送的web页面内容请求,从服务器获取web页面内容;所述混淆模块,用于在所述web页面内容包括js代码的情况下,对所述js代码进行混淆;所述第一发送模块,用于将混淆后的js代码发送至所述客户端;所述第一发送模块,还用于响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,所述第一发送模块,还用于在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;所述第一发送模块,还用于响应于客户端发送的第二请求,将解混淆数据发送至所述客户端;所述第一接收模块,还用于从所述服务器获取所述js文件;所述混淆模块,还用于对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。
15.本发明还提供了一种数据混淆装置,应用在客户端上,包括:第二发送模块、第二接收模块和解混淆模块,其中:所述第二发送模块,用于向网页web应用防护系统发送web页面内容请求;所述第二接收模块,用于接收所述网页web应用防护系统响应于所述web页面内容请求发送的web页面内容;所述第二发送模块,还用于在所述web页面内容包括混淆后的js代码的情况下,向所述网页web应用防护系统发送第一请求;所述第二接收模块,还用于接收所述混淆后的js代码对应的解混淆数据;所述解混淆数据由所述网页web应用防护系统响应于所述第一请求发送;或,所述第二发送模块,还用于在所述web页面内容包括js文件的信息的情况下,向所述网页web应用防护系统发送第二请求;所述第二接收模块,还用于接收所述网页web应用防护系统响应于所述第二请求发送的解混淆数据和js文件中的混淆后的js代码;
解混淆模块,用于利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
16.本发明还提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如上述任一种所述的数据混淆方法。
17.本发明还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据混淆方法。
18.本发明还提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述任一种所述的数据混淆方法。
19.本发明提供一种数据混淆方法、装置和电子设备,网页web应用防护系统分别和客户端以及服务器连接,在该方法中,网页web应用防护系统从服务器获取到web页面内容后,在web页面内容只包含js代码的情况下,对js代码进行混淆发送到客户端,之后响应客户端发送的第一请求,将混淆后的代码对应的解混淆数据发送到客户端;在web页面内容仅包括js文件的信息,js文件用于承载js代码的情况下,在将web页面内容发送至客户端后,响应于客户端发送的第二请求,将解混淆数据发送至客户端,并从服务器中获取js文件,将js文件中的js代码进行混淆并发送至客户端,促进了混淆后的js代码和解混淆数据分离,增加了破解的难度,提高了混淆的隐蔽性,从而防止代码被轻易复制盗用、通过漏洞实施攻击行为等,提高了代码的安全性。
附图说明
20.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明提供的应用于网页web应用防护系统的数据混淆方法的流程示意图;图2为本发明实施例提供的四种设备交互的效果示意图;图3为本发明实施例提供的网页web应用防护系统处理数据的流程示意图;图4为本发明提供的应用于客户端的数据混淆方法的流程示意图;图5为本发明提供的应用于服务器的数据混淆方法的流程示意图;图6为本发明实施例提供的三端交互的效果示意图;图7为本发明提供的数据混淆装置的结构示意图一;图8为本发明提供的数据混淆装置的结构示意图二;图9为本发明提供的数据混淆装置的结构示意图三;图10为本发明提供的电子设备的实体结构示意图。
具体实施方式
22.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳
动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
24.下面结合附图,通过具体的实施例及其应用场景对本发明实施例提供的数据混淆方法进行详细地说明。
25.下面结合图1-图10描述本发明的数据混淆方法、装置和电子设备。
26.在本发明实施例中,如图1所示,图1为本发明提供的应用于网页web应用防护系统的数据混淆方法的流程示意图,该网页web应用防护系统分别和客户端以及服务器连接,将通过以下步骤进行具体说明。
27.s101、响应于客户端发送的web页面内容请求,从服务器获取web页面内容;在本发明的实施例中,网页web应用防护系统接收客户端发送的web页面内容请求,即超文本标记语言(hypertext markup language,html)页面请求后,将该web页面内容请求发送至服务器;服务器响应于web页面内容请求,将web页面内容发送至网页web应用防护系统,网页web应用防护系统接收服务器发送的web页面内容。
28.s102、在web页面内容包括js代码的情况下,对js代码进行混淆,并将混淆后的js代码发送至客户端。
29.在本发明的实施例中,网页web应用防护系统接收到服务器发送的web页面内容后,如果该web页面内容中包括内嵌的javascript(js)代码,则将内嵌的js代码进行混淆,然后将包含混淆后的js代码的页面内容发送至客户端。
30.示例性的,将js代码进行混淆处理,可以通过将对js代码转换成颜文字网络表情的编码,以达到将js代码混淆的目的;或,可以通过将js代码转换成只包含字符的编码,以达到将js代码混淆的目的;或,使用编译器或压缩工具进行代码优化,去掉不必要的空格、换行和/或注释等,使代码更紧凑且难以阅读,以达到将js代码混淆的目的;或,使用变量替换硬编码的常量,例如使用变量来代替字符串或数字,以达到将js代码混淆的目的;或,使用混淆器,将代码转换为不具有可读性的字符串,并使用自定义函数名和变量名来隐藏代码的意图,以达到将js代码混淆的目的,本发明不做限制。
31.s103、响应于客户端发送的第一请求,将混淆后的js代码对应的解混淆数据发送至客户端。
32.在本发明的实施例中,网页web应用防护系统接收客户端发送的第一请求,响应于该第一请求,将混淆后的js代码对应的解混淆数据发送到客户端。
33.在本发明的实施例中,可选地,为防止解混淆数据被轻易破解,解混淆数据也将经过混淆处理,该混淆方式与js代码混淆方式可以相同也可以不同,例如可以只是将源代码复杂化,变得难以阅读。将经过混淆处理后的解混淆数据存储在网页web应用防护系统上,当接收客户端发送的第一请求后,响应于该第一请求,将解混淆数据发送至客户端。解混淆数据用于对混淆后的js代码进行解混淆,以使客户端将解混淆后的js代码在页面上进行解
析加载。
34.s104、在web页面内容仅包括js文件的信息,js文件用于承载js代码的情况下,将web页面内容发送至客户端。
35.在本发明的实施例中,网页web应用防护系统在接收服务器发送的web页面内容后,如果该web页面内容中只包含js文件的信息,其中,该js文件用于承载js代码,将web页面内容发送至客户端。
36.s105、响应于客户端发送的第二请求,将解混淆数据发送至客户端,并从服务器获取js文件;在本发明的实施例中,网页web应用防护系统将web页面内容发送至客户端后,接收客户端发送的第二请求,该第二请求用于获取解混淆数据以及js文件。网页web应用防护系统响应于第二请求,将解混淆数据发送至客户端,并将第二请求发送至服务器,服务器响应接收到的第二请求,将js文件发送至网页web应用防护系统,网页web应用防护系统接收服务器发送的js文件。
37.s106、对js文件中的js代码进行混淆,并将混淆后的js代码发送至客户端。
38.在本发明的实施例中,网页web应用防护系统接收服务器发送的js文件后,对js文件中的js代码进行混淆,并将混淆后的js代码发送至客户端。
39.在本发明的实施例中,对js文件中的js代码进行混淆处理,例如可以采用上述实施例中的混淆方式,以达到将js代码混淆的目的,本发明不做限制。
40.可选地,图2为本发明实施例提供的四种设备交互的效果示意图。在图2中,包括四种设备,客户端、交换机、网页web应用防护系统和服务器。客户端将web页面内容请求通过交换机发送给网页web应用防护系统,由网页web应用防护系统转发给服务器;服务器响应于该web页面内容请求,将web页面内容发送至网页web应用防护系统,如果web页面内容包含内嵌代码或js文件的信息,网页web应用防护系统将web页面中的内嵌代码进行混淆,最后将包含js文件信息或混淆后的js代码的web页面内容通过交换机发送至客户端;当web页面内容包含js文件的信息时,最后客户端通过交换机向网页web应用防护系统发送js文件请求,网页web应用防护系统将js文件请求发送至服务器,接收服务器响应于js文件请求发送的js文件,并将接收到的js文件中的js代码进行混淆,最后将混淆的js文件通过交换机发送至客户端。
41.可以理解的是,在本发明的实施例中,网页web应用防护系统在服务器获取到web页面内容后,在web页面内容只包含js代码的情况下,对js代码进行混淆发送到客户端,之后响应客户端发送的第一请求,将混淆后的代码对应的解混淆数据发送到客户端。在web页面内容仅包括js文件的信息,js文件用于承载js代码的情况下,在将web页面内容发送至客户端后,响应于客户端发送的第二请求,将解混淆数据发送至客户端,同时从服务器中获取js文件,将js文件中的js代码进行混淆并发送至客户端,以使混淆后的js代码和解混淆数据分离,增强了解混淆的难度,提高了代码的安全性。
42.在本发明实施例中,可选地,s101之后还包括s11至s13,将通过以下步骤进行具体说明。
43.s11、确定web页面内容的长度;在本发明的一些实施例中,网页web应用防护系统获取web页面内容的长度。
44.在本发明的一些实施例中,网页web应用防护系统可以通过web页面内容中content-length字段确定web页面内容的长度。
45.s12、若长度不为零,则获取web页面内容的类型;在本发明的一些实施例中,如果长度不为零,网页web应用防护系统通过web页面内容中content-type字段确定web页面内容对应类型。例如,类型包括以下至少一项:文本方式的网文文件(text/html)、纯文本文件(text/plain)、文本方式的脚本文件(text/javascript)、图像文件(image/jpeg)。
46.s13、若web页面内容的类型为文本方式的网文文件,则在web页面内容中插入指示信息,并将插入指示信息后的web页面内容发送至客户端;指示信息用于向客户端指示混淆后的js代码对应的解混淆数据的信息。
47.在本发明的一些实施例中,网页web应用防护系统接收服务器发送的web应用内容后,对web页面内容的类型进行确定,如果web页面内容的类型为文本方式的网文文件,即text/html形式,则在web页面内容中插入指示信息,该指示信息用于向客户端指示混淆后的js代码对应的解混淆数据的信息。
48.可以理解的是,在本发明的一些实施例中,当服务器发送的web页面内容的长度不为零,且web页面内容的类型为文本方式的网文文件,即text/html时,则网页web应用防护系统在页面内容中插入指示信息,指示信息用于向客户端指示混淆后的js代码对应的解混淆数据的信息,例如指示信息可以通过在web页面内容中插入解混淆数据的引入语句实现,客户端可以基于指示信息,快速获知web应用防护系统对代码进行混淆,可以提升效率,而且客户端的判断逻辑较为简单,实现复杂度低,利用解混淆数据对混淆后的js代码进行解混淆,混淆后的js代码和解混淆数据不会同时发送,促进了混淆后的js代码和解混淆数据分离,增加了破解的难度,提高了代码的安全性。
49.在本发明的一些实施例中,s103可以通过s1031至s1033实现,将通过以下步骤进行具体说明。
50.s1031、响应于客户端发送的第一请求,将解混淆数据对应的超文本标记语言html文件名进行转换,得到解混淆数据的js文件名。
51.在本发明的一些实施例中,网页web应用防护系统响应于客户端发送的第一请求,确定解混淆数据对应的超文本标记语言html文件名,将该html文件名进行转换,得到解混淆数据所属文件的js文件名。
52.示例性的,解混淆数据所属文件的文件名按照格式,由设定的前缀与html文件名经过转换拼凑而成。如果包含解混淆数据的文件名为home.html,设定一个固定的数字a作为秘钥,按照文件名home.html各字符的前后顺序将各字符的ascii码与a进行运算;如:设定算法是ascii码乘以a再除以26取余数,h的ascii码为104,a取3,104乘以3除以26取余数为,0对应a,接下来的字符ome.html采取同样的方法,最终获取到对应的加密字符串abcdefg,最后加上前缀后缀组合起来变成rhx_abcdefg.js,即解混淆数据所属的文件名为rhx_abcdefg.js。
53.s1032、将js文件名的预设位和web页面内容的html文件名进行匹配,得到第一匹配结果。
54.在本发明的一些实施例中,确定web页面内容的html文件名,将html文件名和解混
淆数据所属文件的js文件名的预设位进行匹配,得到第一匹配结果。
55.在本发明的实施例中,如s1031获取的解混淆数据所属的js文件名为rhx_abcdefg.js时,取字符串abcdefg为预设位,此次请求的referer_url home.html,即web页面内容的html为home.html,按照s1031步骤给出的示例方法将home.html转换成js文件名,然后将转换后的js文件名中的字符串和abcdefg进行匹配,获取匹配结果。
56.s1033、在第一匹配结果表征成功时,将混淆后的js代码对应的解混淆数据发送至客户端。
57.在本发明的一些实施例中,网页web应用防护系统将js文件名的预设位和本次请求的web页面内容的html文件名匹配成功时,将存储的混淆后的的js代码对应的解混淆数据发送至客户端。
58.可以理解的是,在本发明的一些实施例中,网页web应用防护系统响应于客户端发送的第一请求,对解混淆数据对应的html文件的文件名进行转换,确定该解混淆数据所属的js文件名,然后将该js文件名和本次请求的html文件名进行匹配,匹配成功时,将混淆后的js代码对应的解混淆数据发送至客户端,保证了此次解混淆数据仅针对该web页面内容生效,提高了混淆方法的隐蔽性和安全性。
59.在本发明的一些实施例中,web页面内容还包括js文件的信息,js文件用于承载js代码。s103之后,还包括s14和s15,将通过以下步骤进行具体说明。
60.s14、响应于客户端发送的所述第一请求,从服务器中获取js文件。
61.在本发明的一些实施例中,当web页面内容中包括内嵌的js代码以及js文件的信息时,网页web应用防护系统将内嵌的js代码进行混淆,并将包括混淆后的js代码以及js文件的信息的web页面内容发送至客户端以后,接收客户端发送的第一请求,响应于该第一请求,从服务器中获取js文件。
62.s15、将js文件中的js代码进行混淆,并将混淆后的js文件发送至客户端。
63.在本发明的一些实施例中,网页web应用防护系统接收服务器发送的js文件后,对js文件中的js代码进行混淆,并将混淆后的js文件发送至客户端。
64.可以理解的是,在本发明的一些实施例中,如果服务器返回的web页面内容即包含内嵌的js代码,又包含js文件的信息时,将内嵌的js代码进行混淆并返回至客户端后,接收客户端发送的第一请求,从服务器获取到js文件后,对js文件中js代码进行混淆,并将混淆后的js代码发送至客户端。使得web页面内容中的所有js代码都进行了混淆,在混淆后的js代码上,难以获取原js代码的内容,增加了破解的难度,提高了混淆的隐蔽性,从而防止代码被轻易复制盗用、通过漏洞实施攻击行为等,提高了代码的安全性。
65.在本发明的一些实施例中,s15通过s151至s153实现,通过以下步骤进行具体说明。
66.s151、若js文件的长度不为零,则确定js文件的类型;在本发明的一些实施例中,网页web应用防护系统接收服务器发送的js文件后,对js文件的长度进行确定,若长度不为零,则确定js文件的类型。
67.在本发明的一些实施例中,网页web应用防护系统确定接收到的js文件长度,在长度不为零时,确定js文件的类型。
68.可选的,在上述实施例中,网页web应用防护系统可以通过web页面内容中
content-length字段确定web页面内容的长度,以及通过web页面内容中content-type字段确定web页面内容对应类型。
69.s152、若js文件的类型为文本方式的脚本文件,则获取预设链表中任一节点的标记位;标记位用于表示节点在预设链表中的位置;任一节点用于存储js文件的任一js代码段。
70.在本发明的一些实施例中,如果网页web应用防护系统确定js文件类型为文本方式的脚本文件,即为text/javascript时,则获取预设链表中每个节点(ngx_buf_t)的标记位,节点用于存储该js文件的任一js代码段,标记位主要用于表示节点在预设链表中的位置。
71.s153、当存在目标节点,目标节点的标记位表征目标节点为预设链表中最后节点时,以节点为单位进行js文件的混淆,并将混淆后的js文件发送至客户端。
72.在本发明的一些实施例中,js文件中的数据可能被分多次传递过来,所以网页web应用防护系统获取预设链表中的每个节点的标记位,该节点用于存储该js文件的任一js代码段,当存在目标节点,目标节点的标记位表征目标节点为预设链表中最后节点时,以预设链表中的节点为单元,将储存的js代码进行混淆,最后将混淆后的js文件发送至客户端。
73.可选地,网页web应用防护系统对web页面内容或者承载js代码的js文件处理过程有两个阶段,分别对头部和主体进行修改,网页web应用防护系统接收到的web页面内容或者承载js代码的js文件内容以一个链表(ngx_chain_t,节点ngx_buf_t)的形式进入网页web应用防护系统中的过滤(filter)模块,而且数据可能被分多次传递过来,所以每次数据传递过来时,链表通过调用网页web应用防护系统中的filter的处理函数,完成对web页面内容或者承载js代码的js文件内容的修改。
74.可以理解的是,在本发明的一些实施例中,当js文件的长度不为零,且js文件的类型为文本方式的脚本文件时,根据预设链表中的节点的标记位的位置,判断是否接收到js文件中的全部js代码,避免了js代码的遗漏。
75.在本发明的一些实施例中,数据混淆方法还包括s107,通过以下步骤进行具体说明。
76.s107、在处理web页面内容或处理js文件中包括的响应头信息时,将web页面内容或js文件中的长度字段置空。
77.在本发明的一些实施例中,当网页web应用防护系统需要在web页面内容中插入指示信息,或者对内嵌js代码进行混淆,或者对js文件进行混淆的情况下,将web页面内容或js文件中的长度字段置空。
78.可以理解的是,在本发明的一些实施例中,当需要在web页面内容中插入指示信息或者对js文件进行混淆的情况下,则在处理web页面内容或处理js文件中包括的响应头信息时,将web页面内容或js文件中的长度字段置空,防止响应被错误截断。
79.在本发明的实施例中,图3为本发明实施例提供的网页web应用防护系统处理数据的流程示意图。可选地,在图3中,服务器将web页面内容或js文件发送到网页web应用防护系统后,网页web应用防护系统进行内部处理。在网页web应用防护系统中,网页web应用防护系统通过content-length字段确定web页面内容的长度或js文件的长度,若为0则不进行混淆;通过content-type字段确定web页面内容对应类型,web页面内容或js文件为text/
html则需在《head》标签后加上对解混淆js文件的调用代码(即插入指示信息),检测《script》标签并将对应的js代码混淆(即web页面内容中含内嵌js代码)。web页面内容或js文件为text/javascript时,则需对web页面内容中的js代码或js文件混淆,该步骤在图3中的响应资源过滤模块进行。网页web应用防护系统通过content-length字段确定web页面内容的长度或js文件的长度或通过content-type字段确定web页面内容对应类型,需采取的处理方式将标记于http上下文结构中用于后期判定。当需要在web页面内容中添加解混淆数据的引入语句或需要对web页面内容中的内嵌js以及js文件中js代码进行混淆,则在处理web页面内容或js文件的头部信息时,将content-length字段置空,防止响应被错误截断,该步骤在图3中的响应头处理模块进行。通过传入的预设链表ngx_chain_t中任一节点ngx_buf_t的标记位判断当前节点(buf)是否为当前响应需处理的最后一块节点buf,同时在数据处理过程中,http上下文结构体中定义的标记位将根据处理情况进行改变,辅助混淆过程判定,该步骤在图3中的响应体代码段识别模块进行。当存在目标节点,目标节点的标记位表征目标节点为预设链表中最后节点时,以每个节点中的内容为单位进行混淆,混淆过程中涉及数据的处理将依据http上下文结构体中的字段进行,该步骤在图3中的响应体混淆模块进行。最后网页web应用防护系统将混淆后的代码或者解混淆文件发送至客户端,该步骤在图3中的混淆后的响应体发送模块进行。客户端中的浏览器利用解混淆数据对混淆后的js代码进行解混淆,得到解混淆后的js代码,解析js代码,将原始代码还原至页面。
80.在本发明实施例中,如图4所示,图4为本发明提供的应用于客户端的数据混淆方法的流程示意图,该客户端和web应用防护系统分别连接,将通过以下步骤进行具体说明。
81.s201、向网页web应用防护系统发送web页面内容请求;例如,用户通过光标或键盘使得用户和前端界面发生交互行为,生成web页面内容请求,客户端将该web页面内容请求发送至网页web应用防护系统。
82.s202、接收网页web应用防护系统响应于web页面内容请求发送的web页面内容;在本发明的实施例中,客户端向网页web应用防护系统发送web页面内容请求后,网页web应用防护系统响应于web页面内容请求,从服务器中获取web页面内容并发送至客户端,客户端接收网页web应用防护系统发送的web页面内容。
83.s203、在web页面内容包括混淆后的js代码的情况下,向网页web应用防护系统发送第一请求。
84.在本发明的实施例中,客户端接收到的web页面内容在包括混淆后的js代码的情况下,向网页web应用防护系统发送第一请求;s204、接收混淆后的js代码对应的解混淆数据;解混淆数据由网页web应用防护系统响应于第一请求发送的。
85.在本发明的实施例中,客户端向网页web应用防护系统发送第一请求后,接收网页web应用防护系统响应于第一请求所发送的混淆后的js代码对应的解混淆数据。
86.s205、在web页面内容包括js文件的信息的情况下,向网页web应用防护系统发送第二请求。
87.在本发明的实施例中,客户端接收到的web页面内容在包括js文件的信息的情况下,向网页web应用防护系统发送第二请求。
88.s206、接收解混淆数据和js文件中的混淆后的js代码;解混淆数据和js文件中的混淆后的js代码由网页web应用防护系统响应于第二请求发送的。
89.在本发明的实施例中,客户端接收网页web应用防护系统响应于第二请求发送的解混淆文件,因网页web应用防护系统将服务器发送的js文件中js代码进行混淆,所以同时客户端接收网页web应用防护系统发送的混淆后的js代码。
90.s207、利用解混淆数据对混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
91.在本发明的一些实施例中,当web页面内容中仅包含内嵌js代码时,利用解混淆后的数据对混淆后的js代码进行解混淆;当web页面内容中仅包括js文件时,利用解混淆数据对js文件中的混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
92.可以理解的是,在本发明的实施例中,客户端向网页web应用防护系统发送web页面内容请求后,接收到的web页面内容在包括混淆后的js代码的情况下,向网页web应用防护系统发送第一请求,接收网页web应用防护系统响应于第一请求发送的混淆后的js代码对应的解混淆数据;或者,接收到的web页面内容在包括js文件的信息的情况下,向网页web应用防护系统发送第二请求,接收网页web应用防护系统响应于第二请求发送的js文件中的混淆后的js代码,基于解混淆数据,对混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。导致混淆后的js代码和解混淆数据存放于不同的文件中,以使混淆后的js代码和解混淆数据分离,增强了解混淆的难度,提高了代码的安全性。
93.在本发明的实施例中,数据混淆方法在s204之后还包括s16,通过以下步骤进行具体说明。
94.s16、接收网页web应用防护系统发送的js文件中混淆后的js代码。
95.在本发明的实施例中,客户端接收网页web应用防护系统发送的web页面内容,该web页面内容包括混淆后的js代码的同时也包括js文件,客户端在浏览器中加载web页面内容时遇到内置js文件,通过网页web应用防护系统向服务器发送第一请求获取js文件,网页web应用防护系统将js文件中的js代码进行混淆并进行发送,最后客户端接收网页web应用防护系统发送的js文件中的混淆后的js代码。
96.可以理解的是,在本发明的一些实施例中,当客户端接收的web页面内容中即包括混淆后的js代码和js文件的信息时,通过网页web应用防护系统向服务器发送请求后,接收网页web应用防护系统发送的js文件中混淆后的js代码,使得web页面中的js代码都进行了混淆处理,增强了js代码的安全性。
97.在本发明的实施例中,s208通过以下步骤进行详细说明。
98.s2081、将解混淆数据对应的html文件名进行转换,得到解混淆数据所属的js文件名。
99.在本发明的一些实施例中,客户端将解混淆数据对应的web页面内容的html文件名进行转换,得到解混淆数据所属的js文件名。
100.示例性的,解混淆数据所属的文件名按照格式,由设定的前缀与html文件名经过转换拼凑而成。如果包含解混淆数据的文件名为home.html,设定一个固定的数字a作为秘钥,挨个将文件名各字符的ascii码与a进行运算;如:设定算法是ascii码乘以a再除以26取余数,h的ascii码为104,a取3,104乘以3除以26取余数为,0对应a,接下来ome.html采取同
样的方法,获取到对应的加密字符串abcdefg,最后加上前缀后缀组合起来变成rhx_abcdefg.js,即解混淆数据所属的文件名为rhx_abcdefg.js。
101.s2082、将js文件名的预设位和web页面内容的html文件名进行匹配,得到第二匹配结果;在本发明的一些实施例中,客户端将本次请求的web页面内容的html文件名进行转换,得到对应的js文件名,将该对应的js文件名和js文件名的预设位进行匹配,得到第二匹配结果。
102.在本发明的实施例中,如s2081获取的js文件名为rhx_abcdefg.js时,取字符串abcdefg为预设位,此次请求的rreferer_url home.html按照s2081步骤给出的示例方法转换成js文件名,然后将js文件名中的字符串和abcdefg进行匹配,获取匹配结果。
103.s2083、在第二匹配结果表征成功时,利用解混淆数据对混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
104.在本发明的一些实施例中,在成功匹配时,当web页面内容只包含内嵌的混淆后的js代码,客户端利用解混淆数据对混淆后的js代码进行解混淆,得到解混淆后的js代码,在前端页面中将js代码进行解析和加载;当web页面内容仅包含js文件时,客户端利用解混淆数据对js文件中的混淆后的js代码进行解混淆,得到解混淆后的js代码;当web页面内容即包含内嵌的混淆后的js代码和js文件中的混淆后的js代码,利用解混淆数据对两者进行解混淆。
105.可以理解的是,在本发明的一些实施例中,客户端接收到解混淆数据后,将解混淆数据所属的js文件名和本次请求的web页面的html文件名进行匹配,匹配成功时,利用解混淆数据对混淆后的js代码进行解混淆,提高了混淆方法的隐蔽性和安全性。
106.在本发明实施例中,如图5所示,图5为本发明提供的一种应用于服务器的数据混淆方法的流程示意图,该服务器和web应用防护系统分别连接,将通过以下步骤进行具体说明。
107.s301、接收网页web应用防护系统发送的web页面内容请求。
108.在本发明的实施例中,服务器接收网页web应用防护系统发送的web页面内容请求。
109.s302、响应于web页面内容请求,向网页web应用防护系统发送web页面内容;web页面内容包括js代码。
110.在本发明的实施例中,服务器响应于该web页面内容请求,向网页web应用防护系统发送只包括内嵌js代码的web页面内容。
111.s303、响应于web页面内容请求,向网页web应用防护系统发送web页面内容;web页面内容仅包括js文件的信息;js文件用于承载js代码。
112.在本发明的实施例中,服务器响应于该web页面内容请求,向网页web应用防护系统发送只包括内置js文件信息的web页面内容;其中,该js文件用于承载js代码。
113.s304、接收网页web应用防护系统发送的第二请求。
114.在本发明的实施例中,服务器向网页web应用防护系统发送只包括内置js文件信息的web页面内容后,接收网页web应用防护系统发送的第二请求。
115.s305、向网页web应用防护系统发送响应于第二请求的js文件。
116.在本发明的实施例中,服务器响应于网页web应用防护系统发送的第二请求,将js文件发送至网页web应用防护系统。
117.可以理解的是,在本发明的实施例中,服务器响应于网页web应用防护系统发送的web页面内容请求,将包含js代码的web页面内容发送至网页web应用防护系统;或,将仅包含js文件的web页面内容发送至网页web应用防护系统,以使在网页web应用防护系统中进行js代码的混淆,提高了代码的安全性。
118.在本发明实施例中,web页面内容还包括js文件的信息,js文件用于承载js代码。在s302之后,还包括s401和s402,通过以下步骤进行详细说明。
119.s401、接收网页web应用防护系统发送的第一请求。
120.在本发明的一些实施例中,服务器向网页web应用防护系统发送的web页面内容即包含内嵌js代码,又包括js文件的信息时,接收网页web应用防护系统发送的第一请求。
121.s402、响应于第一请求,向网页web应用防护系统发送js文件。
122.在本发明的一些实施例中,服务器响应于第一请求,向网页web应用防护系统发送js文件。
123.可以理解的是,在本发明的一些实施例中,当web页面内容中即包括内嵌js代码以及js文件的信息时,服务器接收网页web应用防护系统发送的第一请求,响应于第一请求,向网页web应用防护系统发送承载js代码的js文件,使得网页web应用防护系统可以将web页面内容的所有js代码进行混淆,提高了代码的安全性。
124.在本发明实施例中,图6为本发明实施例提供的三端交互的效果示意图,在图6中,客户端通过网页web应用防护系统代理向服务器请求html页面;网页web应用防护系统对服务器响应的html页面内容中的《head》标签后插入对解混淆数据的引入语句(即插入指示信息),且《script》标签中的代码内容进行混淆(即web页面中的内嵌js代码进行混淆),添加对解混淆方法的调用语句,返回给客户端;客户端接收到响应后加载html代码,当html页面内容中包含js文件信息时,对html页面内容中引入的js文件发起请求(包括解混淆数据对应的文件与js文件);网页web应用防护系统对请求的js文件名进行解析,且将js文件名和referer_url文件名(即本次请求的html页面内容的文件名)进行算法匹配,如果匹配成功,则直接返回解混淆数据;网页web应用防护系统对于服务器响应的js文件中的js代码进行混淆加密后返回给客户端,客户端中的浏览器调用解混淆数据解析并执行混淆后的js代码。
125.下面对本发明提供的数据混淆装置进行描述,下文描述的数据混淆装置与上文描述的数据混淆方法可相互对应参照。
126.在本发明的实施例中,如图7所示,图7为本发明提供的数据混淆装置的结构示意图一,该数据混淆装置包括:第一发送模块701、混淆模块702和第一接收模块703,其中;所述第一接收模块703,用于响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;所述混淆模块702,用于在所述web页面内容包括js代码的情况下,对所述js代码进行混淆;所述第一发送模块701,用于将混淆后的js代码发送至所述客户端;所述第一发送模块701,还用于响应于客户端发送的第一请求,将所述混淆后的js
代码对应的解混淆数据发送至所述客户端;或,所述第一发送模块701,还用于在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;所述第一发送模块701,还用于响应于客户端发送的第二请求,将解混淆数据发送至所述客户端;所述第一接收模块703,还用于从所述服务器获取所述js文件;所述混淆模块702,还用于对所述js文件中的js代码进行混淆;所述第一发送模块701,还用于将混淆后的js代码发送至所述客户端。
127.可选的,所述从所述服务器获取web页面内容之后,所述第一发送模块701,具体用于:获取所述web页面内容的长度;若所述长度不为零,则获取所述web页面内容的类型;若所述web页面内容的类型为文本方式的网文文件,则在所述web页面内容中插入指示信息;所述指示信息用于向所述客户端指示所述混淆后的js代码对应的解混淆数据的信息。
128.可选的,所述第一发送701模块,具体用于:响应于所述客户端发送的所述第一请求,将所述解混淆数据对应的超文本标记语言html文件名进行转换,得到所述解混淆数据的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第一匹配结果;在所述第一匹配结果表征成功时,将所述混淆后的js代码对应的解混淆数据发送至所述客户端。
129.可选的,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端之后,所述第一接收模块703,具体用于:响应于所述客户端发送的所述第一请求,从所述服务器中获取所述js文件;所述混淆模块702,具体用于:将所述js文件中的js代码进行混淆;所述第一发送701模块,具体用于:将混淆后的js文件发送至所述客户端。
130.可选的,所述混淆模块702,具体用于:若所述js文件的长度不为零,则确定所述js文件的类型;若所述js文件的类型为文本方式的脚本文件,则获取预设链表中任一节点的标记位;所述标记位用于表示所述节点在所述预设链表中的位置;所述任一节点用于存储所述js文件的任一js代码段;当存在目标节点,所述目标节点的标记位表征所述目标节点为所述预设链表中最后节点时,以所述任一节点为单位进行所述js文件的混淆,并将混淆后的js文件发送至所述客户端。
131.可选的,网页web应用防护系统还包括处理模块,所述处理模块704,具体用于:
在处理所述web页面内容或处理所述js文件中包括的响应头信息时,将所述web页面内容或所述js文件中的长度字段置空。
132.在本发明的实施例中,如图8所示,图8为本发明提供的数据混淆装置的结构示意图二,该数据混淆装置包括:第二发送模块801、第二接收模块802和解混淆模块803,其中;所述第二发送模块801,用于向所述网页web应用防护系统发送web页面内容请求;所述第二接收模块802,用于接收所述网页web应用防护系统响应于所述web页面内容请求发送的web页面内容;所述第二发送模块801,用于在所述web页面内容包括混淆后的js代码的情况下,向所述网页web应用防护系统发送第一请求;所述第二接收模块802,用于接收所述混淆后的js代码对应的解混淆数据;所述解混淆数据由所述网页web应用防护系统响应于所述第一请求发送的;或,所述第二发送模块801,还用于在所述web页面内容包括js文件的信息的情况下,向所述网页web应用防护系统发送第二请求;所述第二接收模块802,还用于接收解混淆数据和所述js文件中的混淆后的js代码;所述解混淆数据和所述js文件中的混淆后的js代码由所述网页web应用防护系统响应于所述第二请求发送的;解混淆模块803,用于利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
133.可选的,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述接收所述混淆后的js代码对应的解混淆数据之后,所述第二接收模块802,具体用于:接收所述网页web应用防护系统发送的js文件中混淆后的js代码。
134.可选的,所述解混淆模块803,具体用于:将解混淆数据对应的html文件名进行转换,得到所述解混淆数据所属的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第二匹配结果;在所述第二匹配结果表征成功时,利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。
135.在本发明的实施例中,如图9所示,图9为本发明提供的数据混淆装置的结构示意图三,该数据混淆装置包括:第三接收模块901和第三发送模块902,其中;所述第三接收模块901,用于接收所述网页web应用防护系统发送的web页面内容请求;第三发送模块902,用于响应于所述web页面内容请求,向所述网页web应用防护系统发送web页面内容;所述web页面内容包括js代码;或,所述第三发送模块902,还用于响应于所述web页面内容请求,向所述网页web应用防护系统发送web页面内容;所述web页面内容仅包括js文件的信息;所述js文件用于承载js代码;所述第三接收模块901,还用于接收所述网页web应用防护系统发送的第二请求;
所述第三发送模块902,还用于向所述网页web应用防护系统发送响应于所述第二请求的js文件。
136.可选的,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述向所述网页web应用防护系统发送响应于所述web页面内容请求的web页面内容之后,所述第三接收模块901,具体用于:接收所述网页web应用防护系统发送的第一请求;所述第三发送模块902,具体用于:响应于所述第一请求,向所述网页web应用防护系统发送所述js文件。
137.在本发明实施例中,如图10所示,图10为本发明提供的电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)1001、通信接口(communications interface)1002、存储器(memory)1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信。处理器1001可以调用存储器1003中的逻辑指令,以执行数据混淆方法,该方法包括:响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;在所述web页面内容包括js代码的情况下,对所述js代码进行混淆,并将混淆后的js代码发送至所述客户端;响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;响应于客户端发送的第二请求,将解混淆数据发送至所述客户端,并从所述服务器获取所述js文件;对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。
138.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据混淆方法,应用于网页web应用防护系统,所述网页web应用防护系统分别和客户端以及服务器连接,该方法包括:响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;在所述web页面内容包括js代码的情况下,对所述js代码进行混淆,并将混淆后的js代码发送至所述客户端;响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;响应于客户端发送的第二请求,将解混淆数据发送至所述客户端,并从所述服务器获取所述js文件;对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。
139.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的应用于网页web应用防护
系统的数据混淆方法,所述网页web应用防护系统分别和客户端以及服务器连接,该方法包括:响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;在所述web页面内容包括js代码的情况下,对所述js代码进行混淆,并将混淆后的js代码发送至所述客户端;响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;响应于客户端发送的第二请求,将解混淆数据发送至所述客户端,并从所述服务器获取所述js文件;对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。
140.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
141.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
142.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种数据混淆方法,其特征在于,应用于网页web应用防护系统,所述网页web应用防护系统分别和客户端以及服务器连接,包括:响应于所述客户端发送的web页面内容请求,从所述服务器获取web页面内容;在所述web页面内容包括js代码的情况下,对所述js代码进行混淆,并将混淆后的js代码发送至所述客户端;响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端;或,在所述web页面内容仅包括js文件的信息,所述js文件用于承载js代码的情况下,将所述web页面内容发送至所述客户端;响应于客户端发送的第二请求,将解混淆数据发送至所述客户端,并从所述服务器获取所述js文件;对所述js文件中的js代码进行混淆,并将混淆后的js代码发送至所述客户端。2.根据权利要求1所述的数据混淆方法,其特征在于,所述从所述服务器获取web页面内容之后,所述方法还包括:获取所述web页面内容的长度;若所述长度不为零,则获取所述web页面内容的类型;若所述web页面内容的类型为文本方式的网文文件,则在所述web页面内容中插入指示信息;所述指示信息用于向所述客户端指示所述混淆后的js代码对应的解混淆数据的信息。3.根据权利要求1所述的数据混淆方法,其特征在于,所述响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端,包括:响应于所述客户端发送的所述第一请求,将所述解混淆数据对应的超文本标记语言html文件名进行转换,得到所述解混淆数据的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第一匹配结果;在所述第一匹配结果表征成功时,将所述混淆后的js代码对应的解混淆数据发送至所述客户端。4.根据权利要求1所述的数据混淆方法,其特征在于,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述响应于客户端发送的第一请求,将所述混淆后的js代码对应的解混淆数据发送至所述客户端之后,还包括:响应于所述客户端发送的所述第一请求,从所述服务器中获取所述js文件;将所述js文件中的js代码进行混淆,并将混淆后的js文件发送至所述客户端。5.根据权利要求4所述的数据混淆方法,其特征在于,所述对所述js文件中的js代码进行混淆,包括:若所述js文件的长度不为零,则确定所述js文件的类型;若所述js文件的类型为文本方式的脚本文件,则获取预设链表中任一节点的标记位;所述标记位用于表示所述节点在所述预设链表中的位置;所述任一节点用于存储所述js文件的任一js代码段;当存在目标节点,所述目标节点的标记位表征所述目标节点为所述预设链表中最后节
点时,以节点为单位进行所述js文件的混淆,并将混淆后的js文件发送至所述客户端。6.根据权利要求1-5任一项所述的数据混淆方法,其特征在于,所述方法还包括:在处理所述web页面内容或处理所述js文件中包括的响应头信息时,将所述web页面内容或所述js文件中的长度字段置空。7.一种数据混淆方法,其特征在于,应用于客户端,所述客户端通过网页web应用防护系统和服务器连接,包括:向所述网页web应用防护系统发送web页面内容请求;接收所述网页web应用防护系统响应于所述web页面内容请求发送的web页面内容;在所述web页面内容包括混淆后的js代码的情况下,向所述网页web应用防护系统发送第一请求;接收所述混淆后的js代码对应的解混淆数据;所述解混淆数据由所述网页web应用防护系统响应于所述第一请求发送的;或,在所述web页面内容包括js文件的信息的情况下,向所述网页web应用防护系统发送第二请求;接收解混淆数据和所述js文件中的混淆后的js代码;所述解混淆数据和所述js文件中的混淆后的js代码由所述网页web应用防护系统响应于所述第二请求发送的;利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。8.根据权利要求7所述的数据混淆方法,其特征在于,所述web页面内容还包括js文件的信息,所述js文件用于承载js代码;所述接收所述混淆后的js代码对应的解混淆数据之后,所述方法还包括:接收所述网页web应用防护系统发送的js文件中混淆后的js代码。9.根据权利要求7所述的数据混淆方法,其特征在于,所述利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载,包括:将解混淆数据对应的html文件名进行转换,得到所述解混淆数据所属的js文件名;将所述js文件名的预设位和所述web页面内容的html文件名进行匹配,得到第二匹配结果;在所述第二匹配结果表征成功时,利用所述解混淆数据对所述混淆后的js代码进行解混淆,并将解混淆后的js代码进行解析和加载。10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至6任一项所述的数据混淆方法,或者实现如权利要求7至9任一项所述的数据混淆方法。

技术总结
本发明公开了一种数据混淆方法、装置和电子设备,涉及信息安全技术领域,该方法包括:响应于客户端发送的WEB页面内容请求,从服务器获取WEB页面内容;在WEB页面内容包括JS代码的情况下,对JS代码进行混淆,并将混淆后的JS代码发送至客户端;响应于客户端发送的第一请求,将混淆后的JS代码对应的解混淆数据发送至客户端;或,在WEB页面内容仅包括JS文件的信息,JS文件用于承载JS代码的情况下,将WEB页面内容发送至客户端;响应于客户端发送的第二请求,将解混淆数据发送至客户端,并从服务器获取所述JS文件;对JS文件中的JS代码进行混淆,并将混淆后的JS代码发送至客户端。本发明提高了代码的安全性。了代码的安全性。了代码的安全性。


技术研发人员:苏腾 王小妹 张晓蕊 权鹏飞
受保护的技术使用者:远江盛邦(北京)网络安全科技股份有限公司
技术研发日:2023.06.28
技术公布日:2023/8/1
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐