对Javascript加密文件进行传输的方法技术

技术编号:30235086 阅读:25 留言:0更新日期:2021-09-29 10:15
本公开的实施例提供了对Javascript加密文件进行传输的方法、设备和计算机可读存储介质。所述方法包括客户端向服务端发送资源信息请求;所述请求包括客户端的公钥;服务端响应于所述请求,通过所述客户端的公钥对与所述请求对应的Javascript文件进行加密,将加密得到的Javascript加密文件发送至所述客户端;所述Javascript文件是通过对Javascript源文件进行混淆得到的;客户端接收所述Javascript加密文件,通过私钥对所述Javascript加密文件进行解密;将解密得到的Javascript文件导入沙盒中进行解混淆,得到Javascript源文件;运行所述Javascript源文件。实现了对Javascript文件的保护。保护。保护。

【技术实现步骤摘要】
对Javascript加密文件进行传输的方法


[0001]本公开的实施例一般涉及数据处理领域,并且更具体地,涉及对Javascript加密文件进行传输的方法、设备和计算机可读存储介质。

技术介绍

[0002]前端技术的发展是互联网自身发生变化的一个缩影,随着物联网的发展,前端技术也逐渐从简单的展示图文信息到需要处理一些复杂逻辑实现良好的交互模式使用户体验有了空前的改变。在前端
中,其核心技术就包含了HTML、CSS、Javascript。
[0003]HTML是页面的核心,CSS决定了界面的视觉效果、Javascript编写前端交互组件。早期的web系统中Javascript仅仅负责一些简单的表单校验,文件内容也非常简单,基本没有保护的必要,但是随着项目的扩展和技术的优化,Javascript也开始逐渐变得复杂,很多后端的业务逻辑已经向前端转移,于此同时给了更多的不法分子可乘之机,如,模拟成正常用户来实施一些恶意行为。所以前端对于Javascript文件的保护,已经成为一个必不可少的工作。
[0004]当前常见的对Javascript代码保护的方法为,对代码进行压缩与混淆,这种代码混淆是在原有代码基本结构不变的条件基础上进行的,更像是一种替换编译,将常见的变量名和函数名通过一些计算方式混淆替换。从而降低Javascript文件的体积,以及可读性。
[0005]但是,实际上代码并没有被有效的保护,浏览器可通过自带的功能对Javascript文件进行更改,例如,通过浏览器的美化功能对Javascript文件进行转换;通过debug功能对Javascript文件进行调试等。

技术实现思路

[0006]根据本公开的实施例,提供了一种对Javascript加密文件进行传输方案。
[0007]在本公开的第一方面,提供了一种对Javascript加密文件进行传输方法。该方法包括:客户端向服务端发送资源信息请求;所述请求包括客户端的公钥;服务端响应于所述请求,通过所述客户端的公钥对与所述请求对应的Javascript文件进行加密,将加密得到的Javascript加密文件发送至所述客户端;所述Javascript文件是通过对Javascript源文件进行混淆得到的;客户端接收所述Javascript加密文件,通过私钥对所述Javascript加密文件进行解密;将解密得到的Javascript文件导入沙盒中进行解混淆,得到Javascript源文件;运行所述Javascript源文件。
[0008]进一步地,所述对Javascript源文件进行混淆包括:对所述Javascript源文件进行无损压缩,并将压缩后的Javascript源文件转换成抽象语法树;通过预设的加密策略,对所述抽象语法树中的节点进行加密;
将完成加密的抽象语法树重新转换成Javascript文件,完成对所述Javascript源文件的混淆。
[0009]进一步地,所述预设的加密策略包括:对所述Javascript源文件中的变量进行混淆处理;加入代码防转换操作;禁止控制台的输出和调试;和/或设置安全域名。
[0010]进一步地,所述加入代码防转换操作包括:加入防转换代码,防止浏览器对所述Javascript文件源文件进行转换。
[0011]进一步地,所述禁止控制台的输出和调试包括:通过闭包或设置隐藏域的方式,禁止控制台输出和调试所述Javascript源文件。
[0012]进一步地,所述将解密得到的Javascript文件导入沙盒中进行解混淆,得到Javascript源文件包括:将解密得到的Javascript文件导入沙盒中,通过与所述Javascript源文件混淆对应的解混淆策略,对所述Javascript文件解混淆,得到Javascript源文件。
[0013]进一步地,所述通过预设的加密策略,对所述抽象语法树中的节点进行加密包括:遍历所述抽象语法树,确定所述抽象语法树中每一个节点对应的代码结构;通过预设的加密策略,对所述代码结构进行加密。
[0014]在本公开的第二方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0015]在本公开的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面的方法。
[0016]本申请实施例提供的对Javascript加密文件进行传输的方法,通过客户端向服务端发送资源信息请求;所述请求包括客户端的公钥;服务端响应于所述请求,通过所述客户端的公钥对与所述请求对应的Javascript文件进行加密,将加密得到的Javascript加密文件发送至所述客户端;所述Javascript文件是通过对Javascript源文件进行混淆得到的;客户端接收所述Javascript加密文件,通过私钥对所述Javascript加密文件进行解密;将解密得到的Javascript文件导入沙盒中进行解混淆,得到Javascript源文件;运行所述Javascript源文件,实现了对Javascript文件的保护。
[0017]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
[0018]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了能够在其中实现本公开的实施例的示例性运行环境的示意图;图2示出了根据本公开的实施例的对Javascript加密文件进行传输的方法的流程图;
图3示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
[0019]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
[0020]另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0021]图1示出了能够在其中实现本公开的实施例的示例性运行环境100的示意图。在运行环境100中包括客户端101、网络102和服务端103。
[0022]网络102用以在客户端101和服务端103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0023]用户可以使用客户端101通过网络本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对Javascript加密文件进行传输的方法,其特征在于,包括:客户端向服务端发送资源信息请求;所述请求包括客户端的公钥;服务端响应于所述请求,通过所述客户端的公钥对与所述请求对应的Javascript文件进行加密,将加密得到的Javascript加密文件发送至所述客户端;所述Javascript文件是通过对Javascript源文件进行混淆得到的;客户端接收所述Javascript加密文件,通过私钥对所述Javascript加密文件进行解密;将解密得到的Javascript文件导入沙盒中进行解混淆,得到Javascript源文件;运行所述Javascript源文件。2.根据权利要求1所述的方法,其特征在于,所述对Javascript源文件进行混淆包括:对所述Javascript源文件进行无损压缩,并将压缩后的Javascript源文件转换成抽象语法树;通过预设的加密策略,对所述抽象语法树中的节点进行加密;将完成加密的抽象语法树重新转换成Javascript文件,完成对所述Javascript源文件的混淆。3.根据权利要求2所述的方法,其特征在于,所述预设的加密策略包括:对所述Javascript源文件中的变量进行混淆处理;加入代码防转换操作;禁止控制台的输出和调试;和/或设置安全域...

【专利技术属性】
技术研发人员:韩旭马维士吴璇
申请(专利权)人:北京华云安信息技术有限公司
类型:发明
国别省市:

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

1