Java应用防护方法、装置、系统、服务器及可读存储介质制造方法及图纸

技术编号:37416191 阅读:19 留言:0更新日期:2023-04-30 09:40
本申请公开了一种Java应用防护方法、装置、系统、服务器及可读存储介质,预先对应用对应的工程代码包中的class文件进行异构化处理,再将经过异构化处理的工程代码包进行部署,在此基础上,当接收到用户请求时,使用预设的裁决算法判断该class文件是否为经过异构化处理的文件,该裁决算法与异构化处理的算法对应,若否,则代表本申请预先进行异构化处理的class文件被恶意篡改了或者该class文件为攻击者新增的文件,丢弃该class文件,若是,则代表该class文件未被攻击,对该class文件进行去异构化处理,得到去异构化class文件,并执行去异构化class文件来响应用户请求,使得攻击者无法通过对class文件进行篡改或者新增class文件的方式构造webshell,提高了Java应用的安全。全。全。

【技术实现步骤摘要】
Java应用防护方法、装置、系统、服务器及可读存储介质


[0001]本申请涉及互联网
,更具体地说,涉及一种Java应用防护方法、装置、系统、服务器及可读存储介质。

技术介绍

[0002]在当今网络环境下,Web服务系统作为重要的服务承载和提供平台,是政府、企业以及个人在互联网上的虚拟代表,汇集了海量数据资源,如用户信息、企业数据、金融财政、商业机密、知识产权、客户订单信息等,其重要程度不言而喻,因此,Web服务器成为网络黑客的主要攻击对象,网络黑客利用各种途径、各种攻击工具、各种欺骗手段来获取其想得到的信息。
[0003]一般情况下,应用采用的开发语言大多为Java,攻击者不乏会通过攻击Java应用源码的形式向Web服务器请求服务以在Java应用中构造webshell(webshell是一种恶意脚本,是利用Web服务器自身的环境执行的恶意代码),企图获得更高控制权限,因此,Java应用的安全性变得极为重要,如何避免Java应用源码遭受攻击者的攻击,避免攻击者在Java应用中构造webshell成为一个亟待解决的问题。

技术实现思路

[0004]有鉴于此,本申请提供了一种Java应用防护方法、装置、系统、服务器及可读存储介质,用于解决现有Java应用防护方式,无法避免Java应用源码遭受攻击者的攻击,无法避免攻击者在Java应用中构造webshell的问题。
[0005]为了实现上述目的,现提出的方案如下:
[0006]一种Java应用防护方法,其特征在于,包括:
>[0007]当接收到用户请求时,获取与所述请求对应的工程代码包中的class文件,所述工程代码包为对其包含的class文件进行异构化处理之后部署的代码包;
[0008]使用预设的裁决算法判断所述class文件是否为经过所述异构化处理的文件,所述裁决算法与所述异构化处理的算法对应;
[0009]若否,丢弃所述class文件;
[0010]若是,根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件;
[0011]执行所述去异构化class文件。
[0012]优选地,在接收用户请求之前,还包括:
[0013]获取客户端上传的预先使用预设的异构算法对初始工程代码包中的class文件进行异构化处理后得到的工程代码包。
[0014]优选地,所述异构算法包括:
[0015]对所述初始工程代码包中的class文件进行插入自定义变量处理、重载构造方法处理及插入自定义方法处理中的任意一项或多项。
[0016]优选地,所述使用预设的裁决算法判断所述class文件是否为经过所述异构化处理的文件,包括:
[0017]判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项;
[0018]若是,则确定所述class文件为经过所述异构化处理的文件;
[0019]若否,则确定所述class文件不是经过所述异构化处理的文件;
[0020]优选地,根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件,包括:
[0021]删除所述class文件中插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项,得到去异构化class文件。
[0022]优选地,判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项之前,还包括:
[0023]利用Java工具类中的反射方式获取所述class文件中的所有变量、所有当前构造方法及所有方法中的任意一项或多项;
[0024]判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项,包括:
[0025]判断所述class文件中的所有所述变量中是否包含插入的所述自定义变量;和/或,
[0026]判断所有所述当前构造方法中是否包含重载的所述构造方法;和/或,
[0027]判断所有所述方法中是否包含插入的所述自定义方法。
[0028]优选地,根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件之后,还包括:
[0029]将所述去异构化class文件发送给Java虚拟机;
[0030]执行所述去异构化class文件,包括:
[0031]利用所述Java虚拟机执行所述去异构化class文件。
[0032]一种Java应用防护装置,包括:
[0033]class文件获取单元,用于当接收到用户请求时,获取与所述请求对应的工程代码包中的class文件,所述工程代码包为对其包含的class文件进行异构化处理之后部署的代码包;
[0034]判断单元,用于使用预设的裁决算法判断所述class文件是否为经过所述异构化处理的文件,所述裁决算法与所述异构化处理的算法对应;
[0035]若否,则执行下述丢弃单元的步骤,若是,则执行下述去异构化处理单元的步骤;
[0036]丢弃单元,用于丢弃所述class文件;
[0037]去异构化处理单元,用于根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件;
[0038]执行单元,用于执行所述去异构化class文件。
[0039]一种Java应用防护系统,包括:客户端及服务器,所述客户端用于对初始工程代码包中的class文件进行异构化处理得到工程代码包,并将所述工程代码包上传至所述服务器,所述服务器用于实现如上述Java应用防护方法的各个步骤。
[0040]一种Java应用防护服务器,包括存储器和处理器;
[0041]所述存储器,用于存储程序;
[0042]所述处理器,用于执行所述程序,实现如上述Java应用防护方法的各个步骤。
[0043]一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述Java应用防护方法的各个步骤。
[0044]从上述的技术方案可以看出,本申请实施例提供的Java应用防护方法,预先对应用对应的工程代码包中的class文件进行异构化处理,再将经过异构化处理的工程代码包进行部署,在此基础上,当接收到用户请求时,并非直接执行用户请求对应的工程代码包中的class文件,而是首先使用预设的裁决算法判断该class文件是否为经过异构化处理的文件,其中,该裁决算法与该异构化处理的算法对应,若否,则代表本申请预先进行异构化处理的class文件被恶意篡改了或者该class文件为攻击者新增的文件,此时丢弃该class文件,若是,则代表该class文件未被攻击,可以正常执行,此时根据上述异构化处理的算法对该class文件进行去异构化处理,得到去异构化class文件,并执行去异构化本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种Java应用防护方法,其特征在于,包括:当接收到用户请求时,获取与所述请求对应的工程代码包中的class文件,所述工程代码包为对其包含的class文件进行异构化处理之后部署的代码包;使用预设的裁决算法判断所述class文件是否为经过所述异构化处理的文件,所述裁决算法与所述异构化处理的算法对应;若否,丢弃所述class文件;若是,根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件;执行所述去异构化class文件。2.根据权利要求1所述的方法,其特征在于,在接收用户请求之前,还包括:获取客户端上传的预先使用预设的异构算法对初始工程代码包中的class文件进行异构化处理后得到的工程代码包。3.根据权利要求2所述的方法,其特征在于,所述异构算法包括:对所述初始工程代码包中的class文件进行插入自定义变量处理、重载构造方法处理及插入自定义方法处理中的任意一项或多项。4.根据权利要求3所述的方法,其特征在于,所述使用预设的裁决算法判断所述class文件是否为经过所述异构化处理的文件,包括:判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项;若是,则确定所述class文件为经过所述异构化处理的文件;若否,则确定所述class文件不是经过所述异构化处理的文件;根据所述异构化处理的算法对所述class文件进行去异构化处理,得到去异构化class文件,包括:删除所述class文件中插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项,得到去异构化class文件。5.根据权利要求4所述的方法,其特征在于,判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项之前,还包括:利用Java工具类中的反射方式获取所述class文件中的所有变量、所有当前构造方法及所有方法中的任意一项或多项;判断所述class文件中是否包含插入的所述自定义变量、重载的所述构造方法及插入的所述自定义方法中的任意一项或多项,包括:判断所述...

【专利技术属性】
技术研发人员:韩首魁李昂张高举潘传幸
申请(专利权)人:郑州昂视信息科技有限公司
类型:发明
国别省市:

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

1