解决反序列化漏洞的方法、反向代理服务器及系统与流程

文档序号:11657438阅读:363来源:国知局
解决反序列化漏洞的方法、反向代理服务器及系统与流程

本发明涉及计算机技术领域,特别涉及解决反序列化漏洞的方法、反向代理服务器及系统。



背景技术:

在越来越多的领域中,通过weblogic中间件作为应用服务器,但是,这种weblogic服务器存在反序列化漏洞。

现有技术中一般通过以下方案解决该漏洞:替换进行序列化操作的objectinputstream类,在不影响业务的前提下,临时删除掉项目里的"org/apache/commons/collections/functors/invokertransformer.class"文件。

现有技术的方案中,仅仅删除了invokertransformer.class文件,但是,无法保证以后不会发现其他的类存在反序列化漏洞,weblogic服务器的安全性较低。



技术实现要素:

本发明实施例提供了解决反序列化漏洞的方法、反向代理服务器及系统,能够提高weblogic服务器的安全性。

第一方面,本发明实施例提供了一种解决反序列化漏洞的方法,应用于反向代理服务器,包括:

接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求;

从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求;

将所述安全的数据请求发送给所述weblogic服务器。

进一步地,

所述从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求,包括:

将所述至少一个数据请求中的t3协议的数据请求作为所述不安全的数据请求。

进一步地,

该方法进一步包括:预先设置至少一个待匹配数据请求;

所述从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求,包括:

将每个所述数据请求与所述至少一个待匹配数据请求进行比较,确定出与任一所述待匹配数据请求相同的数据请求,将与任一所述待匹配数据请求相同的数据请求作为所述不安全的数据请求。

进一步地,

该方法进一步包括:

预先将所述weblogic服务器的地址由原服务器地址修改为新服务器地址,并将所述反向代理服务器的地址设置为所述原服务器地址;

所述接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求,包括:

接收所述至少一个客户端向所述原服务器地址发送的所述至少一个数据请求;

所述将所述安全的数据请求发送给所述weblogic服务器,包括:

将所述安全的数据请求发送到所述新服务器地址。

第二方面,本发明实施例提供了一种反向代理服务器,包括:

接收单元,用于接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求;

确定单元,用于从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求;

发送单元,用于将所述安全的数据请求发送给所述weblogic服务器。

进一步地,

所述确定单元,用于将所述至少一个数据请求中的t3协议的数据请求作为所述不安全的数据请求。

进一步地,

该反向代理服务器,进一步包括:保存单元,用于保存至少一个待匹配数据请求;

所述确定单元,用于将每个所述数据请求与所述至少一个待匹配数据请求进行比较,确定出与任一所述待匹配数据请求相同的数据请求,将与任一所述待匹配数据请求相同的数据请求作为所述不安全的数据请求。

进一步地,

所述接收单元,用于接收所述至少一个客户端向原服务器地址发送的所述至少一个数据请求;

所述发送单元,用于将所述安全的数据请求发送到新服务器地址;

其中,所述weblogic服务器的地址由所述原服务器地址修改为所述新服务器地址,所述反向代理服务器的地址为所述原服务器地址。

第三方面,本发明实施例提供了一种系统,包括:

至少一个客户端、第二方面中任一所述的反向代理服务器和weblogic服务器;

所述客户端,用于向所述反向代理服务器发送数据请求;

所述weblogic服务器,用于接收所述反向代理服务器发来的安全的数据请求。

进一步地,

当所述weblogic服务器的地址由所述原服务器地址修改为所述新服务器地址,所述反向代理服务器的地址为所述原服务器地址时,

所述客户端,用于向所述原服务器地址发送的所述数据请求;

所述反向代理服务器,用于接收所述至少一个客户端向所述原服务器地址发送的所述至少一个数据请求,将所述安全的数据请求发送到所述新服务器地址。

在本发明实施例中,在weblogic服务器与weblogic服务器的客户端之间添加了反向代理服务器,通过反向代理服务器对客户端发给weblogic服务器的数据请求进行过滤,过滤掉不安全的数据请求,只将安全的数据请求发送给weblogic服务器,提高了weblogic服务器的安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种解决反序列化漏洞的方法的流程图;

图2是本发明一实施例提供的另一种解决反序列化漏洞的方法的流程图;

图3是本发明一实施例提供的一种反向代理服务器的示意图;

图4是本发明一实施例提供的一种系统的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种解决反序列化漏洞的方法,应用于反向代理服务器,包括:

步骤101:接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求;

步骤102:从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求;

步骤103:将所述安全的数据请求发送给所述weblogic服务器。

在本发明实施例中,在weblogic服务器与weblogic服务器的客户端之间添加了反向代理服务器,通过反向代理服务器对客户端发给weblogic服务器的数据请求进行过滤,过滤掉不安全的数据请求,只将安全的数据请求发送给weblogic服务器,提高了weblogic服务器的安全性。

在本发明实施例中,在确定出不安全的数据请求后,将该至少一个数据请求中剩余的数据请求作为安全的数据请求。

在本发明一实施例中,所述从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求,包括:

将所述至少一个数据请求中的t3协议的数据请求作为所述不安全的数据请求。

weblogic服务器是通过t3协议来传输序列化,在调用weblogic的停止脚本时,会向weblogic服务器发送java序列化数据,恶意用户会模拟发送t3协议的数据请求攻击weblogic服务器。在本发明实施例中,将t3协议的数据请求作为不安全的数据请求,禁止了t3协议的数据请求转发到weblogic服务器,避免weblogic服务器遭受攻击,提高了weblogic服务器的安全性。

在本发明一实施例中,该方法进一步包括:预先设置至少一个待匹配数据请求;

所述从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求,包括:

将每个所述数据请求与所述至少一个待匹配数据请求进行比较,确定出与任一所述待匹配数据请求相同的数据请求,将与任一所述待匹配数据请求相同的数据请求作为所述不安全的数据请求。

在本发明实施例中,在反向代理服务器中预先设置待匹配数据请求,这些待匹配数据请求可以作为黑名单,只要与其中的待匹配数据请求相同的数据请求,就划分为不安全的数据请求,禁止转发给weblogic服务器,提高了weblogic服务器的安全性。举例来说,将至少一个特定的http(超文本传输协议,hypertexttransferprotocol))协议的数据请求作为待匹配数据请求。

在本发明一实施例中,该方法进一步包括:

预先将所述weblogic服务器的地址由原服务器地址修改为新服务器地址,并将所述反向代理服务器的地址设置为所述原服务器地址;

所述接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求,包括:

接收所述至少一个客户端向所述原服务器地址发送的所述至少一个数据请求;

所述将所述安全的数据请求发送给所述weblogic服务器,包括:

将所述安全的数据请求发送到所述新服务器地址。

在本发明实施例中,为了方便反向代理服务器获取客户端发送的数据请求,将反向代理服务器的地址设置为weblogic服务器的原服务器地址,为了避免客户端直接将数据请求发送给weblogic服务器,将weblogic服务器的地址修改为新服务器地址,进而使得客户端在向原服务器地址发送数据请求,可以被反向代理服务器获取,反向代理服务器进行过滤处理,保证weblogic服务器的安全。举例来说,将weblogic服务器的7001端口修改该7006端口,将反向代理服务器的地址设置为7001端口。具体地,weblogic服务器的原服务器地址可以为http://127.0.0.1:7001/,修改后,weblogic服务器的新服务器地址为http://127.0.0.1:7006/,将反向代理服务器的地址设置为http://127.0.0.1:7001/。

为了进一步提高weblogic服务器的安全性,weblogic服务器的新服务器地址采用内部的私有地址,具体地,可以将新服务器地址的端口设置为私有端口。当weblogic服务器的新服务器地址为公有的时,恶意用户可能会找到weblogic服务器的新服务器地址,利用客户端直接对weblogic服务器发起攻击,而在本发明实施例中,新服务器地址采用内部的私有地址,恶意用户无法找到weblogic服务器的地址,也就无法直接对weblogic服务器发起攻击,进而提高了weblogic服务器的安全性。

另外,在本发明一实施例中,利用反向代理服务器禁止外部访问weblogic控制台,这样,避免了外部通过weblogic控制台对weblogic服务器的进行攻击,进一步提高了weblogic服务器的安全性。

本发明实施例对地址的设置可以通过以下代码实现:

在对地址配置完成后,可以通过客户端访问原服务器地址,查看是否显示正常,如果显示正常则说明设置可行。

如图2所示,本发明实施例提供了一种解决反序列化漏洞的方法,应用于反向代理服务器,该方法可以包括以下步骤:

步骤201:预先设置至少一个http协议的待匹配数据请求。

举例来说,预先设置待匹配数据请求a、待匹配数据请求b、待匹配数据请求c。

步骤202:预先将weblogic服务器的地址由原服务器地址修改为新服务器地址,并将反向代理服务器的地址设置为原服务器地址。

举例来说,weblogic服务器的原服务器地址为地址a,新服务器地址的地址b,则将weblogic服务器的地址设置为地址b,将反向代理服务器的地址设置为地址a。

步骤203:接收weblogic服务器对应的至少一个客户端向原服务器地址发送的至少一个数据请求。

由于在客户端中weblogic服务器的地址仍然是原服务器地址,因此,客户端需要向weblogic服务器发送数据请求时,还是会向原服务器地址发送数据请求。反向代理服务器的地址为原服务器地址,反向代理服务器就可以直接接收客户端发送的数据请求。

举例来说,客户端向地址a发送数据请求,反向代理服务器直接接收客户端发送的数据请求。例如:接收到客户端发来的数据请求a、数据请求b、数据请求c、数据请求d。其中,数据请求a、数据请求b、数据请求c是http协议的数据请求,数据请求d是t3协议的数据请求。

步骤204:从该至少一个数据请求中,确定出t3协议的数据请求,将t3协议的数据请求作为不安全的数据请求。

举例来说,确定出数据请求d是t3协议的数据请求,将数据请求d作为不安全的数据请求。

步骤205:将该至少一个数据请求中每个http协议的数据请求与每个待匹配数据请求进行比较,确定出与任一待匹配数据请求相同的http协议的数据请求,将与任一待匹配数据请求相同的http协议的数据请求作为不安全的数据请求。

举例来说,将数据请求a、数据请求b、数据请求c中每个数据请求分别与待匹配数据请求a、待匹配数据请求b、待匹配数据请求c进行比较,确定出数据请求a与待匹配数据请求a相同,数据请求b与待匹配数据请求b相同,数据请求c与任一待匹配数据请求均不同,则将数据请求a、数据请求b作为不安全的数据请求。

步骤206:将该至少一个数据请求中不安全的数据请求之外的数据请求作为安全的数据请求。

举例来说,数据请求a、数据请求b和数据请求d均为不安全的数据请求,则数据请求c为安全的数据请求。

步骤207:将安全的数据请求发送到weblogic服务器的新服务器地址。

举例来说,将数据请求c发送到地址b,也就是,将数据请求c转发给weblogic服务器,以使weblogic服务器做后续处理。

在本发明实施例中,反向代理服务器可以通过nginx来实现。

在本发明实施例中,在weblogic服务器的前端增加反向代理服务器,通过反向代理服务器对客户端发来的http协议和t3协议的数据请求进行过滤,禁止t3协议的数据请求和部分指定的http协议的数据请求,仅将剩余的安全的数据请求转发给weblogic服务器,解决weblogic服务器反序列化漏洞,有效的保证了weblogic服务器的安全,防止weblogic服务器被攻击。

如图3所示,本发明实施例提供了一种反向代理服务器,包括:

接收单元301,用于接收weblogic服务器对应的至少一个客户端发来的至少一个数据请求;

确定单元302,用于从所述至少一个数据请求中,确定出安全的数据请求和不安全的数据请求;

发送单元303,用于将所述安全的数据请求发送给所述weblogic服务器。

在本发明一实施例中,所述确定单元,用于将所述至少一个数据请求中的t3协议的数据请求作为所述不安全的数据请求。

在本发明一实施例中,该反向代理服务器进一步包括:保存单元,用于保存至少一个待匹配数据请求;

所述确定单元,用于将每个所述数据请求与所述至少一个待匹配数据请求进行比较,确定出与任一所述待匹配数据请求相同的数据请求,将与任一所述待匹配数据请求相同的数据请求作为所述不安全的数据请求。

在本发明一实施例中,所述接收单元,用于接收所述至少一个客户端向原服务器地址发送的所述至少一个数据请求;

所述发送单元,用于将所述安全的数据请求发送到新服务器地址;

其中,所述weblogic服务器的地址由所述原服务器地址修改为所述新服务器地址,所述反向代理服务器的地址为所述原服务器地址。

本发明实施例提供了一种系统,包括:

至少一个客户端、本发明实施例中任一所述的反向代理服务器和weblogic服务器;

所述客户端,用于向所述反向代理服务器发送数据请求;

所述weblogic服务器,用于接收所述反向代理服务器发来的安全的数据请求。

如图4所示,本发明实施例提供了一种系统,包括:

三个客户端401、本发明实施例中任一所述的反向代理服务器402和weblogic服务器403;

所述客户端401,用于向所述反向代理服务器402发送数据请求;

所述weblogic服务器403,用于接收所述反向代理服务器402发来的安全的数据请求。

在本发明一实施例中,当所述weblogic服务器的地址由所述原服务器地址修改为所述新服务器地址,所述反向代理服务器的地址为所述原服务器地址时,

所述客户端,用于向所述原服务器地址发送的所述数据请求;

所述反向代理服务器,用于接收所述至少一个客户端向所述原服务器地址发送的所述至少一个数据请求,将所述安全的数据请求发送到所述新服务器地址。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明各个实施例至少具有如下有益效果:

1、在本发明实施例中,在weblogic服务器与weblogic服务器的客户端之间添加了反向代理服务器,通过反向代理服务器对客户端发给weblogic服务器的数据请求进行过滤,过滤掉不安全的数据请求,只将安全的数据请求发送给weblogic服务器,提高了weblogic服务器的安全性。

2、在本发明实施例中,将t3协议的数据请求作为不安全的数据请求,禁止了t3协议的数据请求转发到weblogic服务器,避免weblogic服务器遭受攻击,提高了weblogic服务器的安全性。

3、在本发明实施例中,在反向代理服务器中预先设置待匹配数据请求,这些待匹配数据请求可以作为黑名单,只要与其中的待匹配数据请求相同的数据请求,就划分为不安全的数据请求,禁止转发给weblogic服务器,提高了weblogic服务器的安全性。

4、在本发明实施例中,在weblogic服务器的前端增加反向代理服务器,通过反向代理服务器对客户端发来的http协议和t3协议的数据请求进行过滤,禁止t3协议的数据请求和部分指定的http协议的数据请求,仅将剩余的安全的数据请求转发给weblogic服务器,解决weblogic服务器反序列化漏洞,有效的保证了weblogic服务器的安全,防止weblogic服务器被攻击。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1