JavaScript代码处理方法及装置制造方法及图纸

技术编号:26970757 阅读:42 留言:0更新日期:2021-01-06 00:00
本申请公开了一种JavaScript代码处理方法,包括:获得用于提供目标业务功能的JavaScript源代码;按照预设操作码生成规则,将至少一部分所述JavaScript源代码编译成操作码形式的字节码;输出包含所述字节码的目标代码。采用所述方法,将需要被保护的JavaScript代码编译为操作码形式的字节码,以保证JavaScript代码不被轻易获取、破解,提高了安全程度。

【技术实现步骤摘要】
JavaScript代码处理方法及装置
本申请涉及计算机
,具体涉及JavaScript代码处理方法及装置。
技术介绍
目前互联网应用越来越丰富,随着浏览器性能和网速的提高,互联网前端设备也承载了重要的业务处理逻辑。所谓互联网前端设备,可以是终端应用,例如网页或客户端APP等。其中,JavaScript作为一种高级解释性语言,常用于实现前端设备的业务处理逻辑,提供业务功能。由于JavaScript为非编译型动态脚本语言,因此,JavaScript源代码能通过浏览器查看,执行流程能轻易被获取。如何保证核心JavaScript代码不被攻击者获取或者不被竞争对手很重要,尤其是提高前端设备的关键业务或风险控制业务中JavaScript代码的安全程度更加重要,比如登陆、注册、支付、交易等业务。现有技术中,JavaScript代码的安全方案有如下几种:1、压缩代码,重写函数名及形式参数;如果业务处理过程中需要依赖特定名称的代码,则该方案不适用。2、添加额外的分支代码对源代码的执行流程进行模糊化处理;该方案中存在与业务无关的流程代码,因此增加了代码的尺寸。3、禁止针对JavaScript代码进行调试;该方案中,由于攻击者能看到反调试的代码,可以轻易去掉反调试代码,因而安全程度低。4、针对前端设备代码,采用私有算法进行加密以及解密处理。该方案中,由于加密以及解密算法能被获得,因此可能通过调试分析出加解密流程,所以安全程度低。上述安全方案能够在一定程度上增加攻击者的攻击难度,但是,存在如下缺陷:不能完全隐藏掉真实代码和执行流程,因此,安全程度低。因此,如何对JavaScript核心代码进行加密混淆处理,以保证不被轻易获取、破解,提高安全程度,是需要解决的问题。
技术实现思路
本申请提供的JavaScript代码处理方法,将JavaScript代码编译为操作码形式的字节码,以保证JavaScript代码不被轻易获取、破解,提高了安全程度。本申请提供一种JavaScript代码处理方法,包括:获得用于提供目标业务功能的JavaScript源代码;按照预设操作码生成规则,将至少一部分所述JavaScript源代码编译成操作码形式的字节码;输出包含所述字节码的目标代码。可选的,还包括:生成特定JavaScript虚拟机,所述特定JavaScript虚拟机,为用于处理所述目标代码的进程虚拟机。可选的,所述生成特定JavaScript虚拟机,包括:采用编译型计算机语言生成用于处理所述目标代码的进程虚拟机;所述进程虚拟机为能在浏览器中执行的二进制程序;将所述进程虚拟机作为所述特定JavaScript虚拟机。可选的,还包括:输出所述特定JavaScript虚拟机。可选的,还包括:按照预设操作码解释规则生成操作码转换器,所述操作码转换器用于将所述目标代码解释为所述特定JavaScript虚拟机能识别执行的指令。可选的,还包括:生成用于浏览器JavaScript引擎调用所述目标代码包含的业务处理逻辑的桥文件;其中,所述桥文件能被所述浏览器JavaScript引擎加载执行;所述目标代码包含的业务处理逻辑,为根据JavaScript源代码包含的用于提供目标业务功能的处理逻辑生成的字节码形式的业务处理逻辑。可选的:获得所述JavaScript源代码包含的业务处理逻辑对应的源代码函数签名信息;根据所述源代码函数签名信息,得到所述桥文件包括的JavaScript函数的函数签名信息。可选的,所述桥文件包括的JavaScript函数,包括下述代码:用于初始化所述特定JavaScript虚拟机以得到黑盒执行环境实例的黑盒执行环境代码;用于调用所述黑盒执行环境实例的入口方法的方法调用代码;用于获得调用所述入口方法的调用结果,并输出所述调用结果的结果输出代码。可选的,所述黑盒执行环境代码,包括:用于加载所述黑盒执行环境代码的加载代码;用于调用浏览器编译接口编译所述黑盒执行环境代码的编译代码。可选的,所述黑盒执行环境代码为wasm文件;所述浏览器编译接口为WebAssembly规范的编译接口。可选的,还包括:输出所述桥文件。本申请还提供另一种JavaScript代码处理方法,包括:获得包含字节码的目标代码;所述字节码,为根据预设操作码生成规则针对用于提供目标业务功能的JavaScript源代码进行编译得到的操作码形式的字节码;调用所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能。可选的,还包括:获得特定JavaScript虚拟机,所述特定JavaScript虚拟机,为用于调用所述目标代码的进程虚拟机;所述调用所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能,包括:使用所述特定JavaScript虚拟机调用所述目标代码,执行所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能。可选的,还包括:获得按照预设操作码解释规则生成的操作码转换器,所述操作码转换器用于将所述目标代码解释为所述特定JavaScript虚拟机能识别执行的指令;所述使用所述特定JavaScript虚拟机调用所述目标代码,执行所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能,包括:使用操作码转换器将所述目标代码包含的字节码解释为所述特定JavaScript虚拟机能识别执行的指令;使用所述特定JavaScript虚拟机执行所述指令,按照所述指令对应的业务处理逻辑进行处理,提供目标业务功能。可选的,还包括:获得能被浏览器JavaScript引擎加载执行的桥文件,所述桥文件用于浏览器JavaScript引擎调用所述目标代码包含的业务处理逻辑;其中,所述桥文件包括的JavaScript函数的函数签名信息,与所述JavaScript源代码包含的业务处理逻辑对应的源代码函数的函数签名信息一致;所述使用所述特定JavaScript虚拟机调用所述目标代码,执行所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能,包括:根据所述桥文件以及所述特定JavaScript虚拟机,调用所述目标代码包含的字节码,执行所述字节码对应的业务处理逻辑。可选的,所述桥文件包括:用于初始化所述特定JavaScript虚拟机以得到黑盒执行环境实例的黑盒执行环境代码;用于调用所述黑盒执行环境实例的入口方法的方法调用代码;用于获得调用所述入口方法的调用结果,并输出所述调用结果的结果输出代码;所述根据所述桥文件以及所述特定JavaScript虚拟机,调用所述目标代码包含的字节码,执行所述字节码对应的业务处理逻辑,包括:根据所述桥文件的黑盒执行环境代码以及所述特定JavaScript虚拟机,得到黑盒执行环境实例;通过浏览器JavaScript引擎以及所述特定Jav本文档来自技高网
...

【技术保护点】
1.一种JavaScript代码处理方法,其特征在于,包括:/n获得用于提供目标业务功能的JavaScript源代码;/n按照预设操作码生成规则,将至少一部分所述JavaScript源代码编译成操作码形式的字节码;/n输出包含所述字节码的目标代码。/n

【技术特征摘要】
1.一种JavaScript代码处理方法,其特征在于,包括:
获得用于提供目标业务功能的JavaScript源代码;
按照预设操作码生成规则,将至少一部分所述JavaScript源代码编译成操作码形式的字节码;
输出包含所述字节码的目标代码。


2.根据权利要求1所述的方法,其特征在于,还包括:
生成特定JavaScript虚拟机,所述特定JavaScript虚拟机,为用于处理所述目标代码的进程虚拟机。


3.根据权利要求2所述的方法,其特征在于,所述生成特定JavaScript虚拟机,包括:采用编译型计算机语言生成用于处理所述目标代码的进程虚拟机;所述进程虚拟机为能在浏览器中执行的二进制程序;
将所述进程虚拟机作为所述特定JavaScript虚拟机。


4.根据权利要求2所述的方法,其特征在于,还包括:输出所述特定JavaScript虚拟机。


5.根据权利要求2所述的方法,其特征在于,还包括:按照预设操作码解释规则生成操作码转换器,所述操作码转换器用于将所述目标代码解释为所述特定JavaScript虚拟机能识别执行的指令。


6.根据权利要求1所述的方法,其特征在于,还包括:生成用于浏览器JavaScript引擎调用所述目标代码包含的业务处理逻辑的桥文件;其中,所述桥文件能被所述浏览器JavaScript引擎加载执行;所述目标代码包含的业务处理逻辑,为根据JavaScript源代码包含的用于提供目标业务功能的处理逻辑生成的字节码形式的业务处理逻辑。


7.根据权利要求6所述的方法,其特征在于,还包括:获得所述JavaScript源代码包含的业务处理逻辑对应的源代码函数签名信息;
根据所述源代码函数签名信息,得到所述桥文件包括的JavaScript函数的函数签名信息。


8.根据权利要求7所述的方法,其特征在于,所述桥文件包括的JavaScript函数,包括下述代码:
用于初始化所述特定JavaScript虚拟机以得到黑盒执行环境实例的黑盒执行环境代码;
用于调用所述黑盒执行环境实例的入口方法的方法调用代码;
用于获得调用所述入口方法的调用结果,并输出所述调用结果的结果输出代码。


9.根据权利要求8所述的方法,其特征在于,所述黑盒执行环境代码,包括:用于加载所述黑盒执行环境代码的加载代码;
用于调用浏览器编译接口编译所述黑盒执行环境代码的编译代码。


10.根据权利要求9所述的方法,其特征在于,所述黑盒执行环境代码为wasm文件;所述浏览器编译接口为WebAssembly规范的编译接口。


11.根据权利要求6所述的方法,其特征在于,还包括:输出所述桥文件。


12.一种JavaScript代码处理方法,其特征在于,包括:
获得包含字节码的目标代码;所述字节码,为根据预设操作码生成规则针对用于提供目标业务功能的JavaScript源代码进行编译得到的操作码形式的字节码;
调用所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能。


13.根据权利要求12所述的方法,其特征在于,还包括:获得特定JavaScript虚拟机,所述特定JavaScript虚拟机,为用于调用所述目标代码的进程虚拟机;
所述调用所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能,包括:使用所述特定JavaScript虚拟机调用所述目标代码,执行所述目标代码包含的字节码,根据所述字节码对应的业务处理逻辑提供目标业务功能。


14.根据权利要求13所述的方法,其特征在于,还包括:获得按照预设操作码解释规则生成的操作码转换器,所述操作码转换器用于将所述目标代码解释为所述特定JavaScript虚拟机能识别执行的指令;
所述使用所述特定JavaScript虚拟机调用所述目标代码,执行所述目标代码包...

【专利技术属性】
技术研发人员:王聪刘蜀东穆森何继文刘辉军朱玥黄学军邱桂苹陈贺陈琪超杨淑婷姚凤郭晓双李浩然林嵩李俊刘冬林诗蒙郭耀慷
申请(专利权)人:航天云网科技发展有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1