【技术实现步骤摘要】
代码处理方法、装置、电子设备及可读介质
[0001]本专利技术涉及互联网
,特别是涉及一种代码处理方法、一种代码处理装置、一种电子设备以及一种计算机可读介质。
技术介绍
[0002]Javascript是一种动态类型、弱类型、基于原型的语言,被广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
[0003]Javascript的许多新特性及新功能让开发人员能够很容易地创建强大的WEB类应用程序,但同时也带来了一些新的安全隐患,例如Javascript代码运行于客户端,也就是它必须要在用户浏览器端加载并运行,且Javascript代码是公开透明的,也就是说浏览器可以直接获取到正在运行的Javascript的源码,从而任何人都可以读取、分析、复制、盗用,甚至篡改,因此,目前的Javascript代码具有很大的安全隐患。
技术实现思路
[0004]本专利技术实施例是提供一种代码处理方法、装置、电子设备及可读介质,以在一定程度上提高代码
【技术保护点】
【技术特征摘要】
1.一种代码处理方法,其特征在于,应用于客户端,所述客户端与服务器进行通信,所述方法包括:将待混淆代码编译为抽象语法树;调用预设的混淆插件,并通过所述混淆插件,对所述抽象语法树中的各个节点进行处理,得到目标抽象语法树;将所述目标抽象语法树编译为目标混淆代码,并将所述目标混淆代码发送至所述服务器;接收所述服务器针对所述目标混淆代码生成的虚拟指令以及对应的解释器,并根据所述虚拟指令以及对应的解释器,运行所述目标混淆代码。2.根据权利要求1所述的方法,其特征在于,所述调用预设的混淆插件,并通过所述混淆插件,对所述抽象语法树中的各个节点进行处理,包括:调用预设的混淆插件,并在遍历所述抽象语法树中的各个节点时,若一目标节点包括预设对象,或,为预设类型的节点,则通过相应的所述混淆插件,对所述目标节点进行相应的处理。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:调用预设的检测插件,并在所述目标抽象语法树中插入所述检测插件,以通过所述检测插件检测所述目标混淆代码的运行情况。4.根据权利要求2所述的方法,其特征在于,所述混淆插件包括变量混淆插件;所述若一目标节点包括预设对象,则通过相应的所述混淆插件,对所述目标节点进行相应的处理,包括:若一目标节点包括变量名,则通过所述变量混淆插件,对所述目标节点处的变量名进行转换。5.根据权利要求2所述的方法,其特征在于,所述混淆插件包括字符串混淆插件和/或数组混淆插件;所述若一目标节点包括预设对象,则通过相应的所述混淆插件,对所述目标节点进行相应的处理,包括:若一目标节点包括字符串,则通过所述字符串混淆插件,对所述目标节点处的字符串进行加密,并插入解密标记;所述解密标记用于指示所述客户端在运行所述目标混淆代码时调用对应的解密函数进行解密;和/或,若一目标节点包括字符串,则通过所述数组混淆插件,将所述目标节点处的字符串提取至全局变量数组以进行存储,并将所述字符串的存储位置进行混淆。6.根据权利要求2所述的方法,其特征在于,所述混淆插件包括函数转换插件和数组混淆插件;所述若一目标节点包括预设对象,则通过相应的所述混淆插件,对所述目标节点进行相应的处理,包括:若一目标节点包括全局变量函数,则通过所述函数转换插件,将所述目标节点处的全局变量函数转换成第一预设函数;以及,通过所述数组混淆插件,将所述第一预设函数提取至全局变量数组以进行存储,并将所述第一预设函数的存储位置进行混淆。7.根据权利要求2所述的方法,其特征在于,所述混淆插件包括流程混淆插件;所述若一目...
【专利技术属性】
技术研发人员:王斌,史忠伟,
申请(专利权)人:北京五八信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。