一种实现api审计防火墙的方法及系统
技术领域
1.本发明涉及网络通信领域,具体而言,涉及一种实现api审计防火墙的方法及系统。
背景技术:2.应用程序接口(application programming interface,api),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
3.当为系统设计api的时候,需要为api建立防火墙,在保护您的资源免受滥用的同时允许合法请求通过。防火墙原则:1、api能确认所有的操作都是合法的。2、在发生错误的时候api会根据错误报告机制发出指示,减轻开发人员的负担。3、api中内置授权和访问控制,以确保只有授权人员才能访问特定数据。4、我们可以实施速率限制来控制服务器资源的使用,以确保用户不会滥用服务。现有技术实现api审计防火墙功能需要进行复杂的协议解析。
技术实现要素:4.本发明的目的在于提供一种实现api审计防火墙的方法及系统,用以改善现有技术中需要进行复杂的协议解析的问题。
5.第一方面,本技术实施例提供一种实现api审计防火墙的方法,包括以下步骤:
6.在每台应用服务器上部署预置的api审计防护墙插件;
7.获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;
8.将应用程序的用户信息和api信息发送至api审计防火墙设备;
9.获取api审计防火墙设备发送的审计防护策略信息;
10.根据用户信息、api信息和审计防护策略信息对api访问进行处理。
11.上述实现过程中,在每台应用服务器上部署预置的api审计防护墙插件;然后获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;然后将应用程序的用户信息和api信息发送至api审计防火墙设备;然后获取api审计防火墙设备发送的审计防护策略信息;最后根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。
12.基于第一方面,在本发明的一些实施例中,获取并根据api访问请求通过api审计
防护墙插件获取应用程序的用户信息和api信息的步骤包括以下步骤:
13.在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;
14.获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。
15.基于第一方面,在本发明的一些实施例中,根据用户信息、api信息和审计防护策略信息对api访问进行处理,生成处理结果的步骤包括以下步骤:
16.根据api信息在审计防护策略信息中匹配对应的api策略信息;
17.根据用户信息和对应的api策略信息对api访问进行处理。
18.基于第一方面,在本发明的一些实施例中,根据用户信息和对应的api策略信息对api访问进行处理的步骤包括以下步骤:
19.判断对应的api策略信息是否为报警,若是,则对api访问不放行,并生成报警信息;若否,则对api访问进行放行。
20.基于第一方面,在本发明的一些实施例中,根据用户信息和对应的api策略信息对api访问进行处理的步骤包括以下步骤:
21.根据用户信息判断对应的api策略信息是否为阻断,若是,则对api访问进行阻断;若否,则对api访问进行放行。
22.基于第一方面,在本发明的一些实施例中,还包括以下步骤:
23.根据应用程序的用户信息和api信息生成审计日志;
24.将审计日志发送至api审计防火墙设备。
25.第二方面,本技术实施例提供一种实现api审计防火墙的系统,包括:
26.插件部署模块,用于在每台应用服务器上部署预置的api审计防护墙插件;
27.信息获取模块,用于获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;
28.信息发送模块,用于将应用程序的用户信息和api信息发送至api审计防火墙设备;
29.策略加载模块,用于获取api审计防火墙设备发送的审计防护策略信息;
30.访问处理模块,用于根据用户信息、api信息和审计防护策略信息对api访问进行处理。
31.上述实现过程中,插件部署模块在每台应用服务器上部署预置的api审计防护墙插件;信息获取模块获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;策略加载模块将应用程序的用户信息和api信息发送至api审计防火墙设备;访问处理模块获取api审计防火墙设备发送的审计防护策略信息;访问处理模块根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。
32.基于第二方面,在本发明的一些实施例中,信息获取模块包括:
33.过滤器单元,用于在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;
34.信息采集单元,用于获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。
35.第三方面,本技术实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
36.第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
37.本发明实施例至少具有如下优点或有益效果:
38.本发明实施例提供一种实现api审计防火墙的方法及系统,在每台应用服务器上部署预置的api审计防护墙插件;然后获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;然后将应用程序的用户信息和api信息发送至api审计防火墙设备;然后获取api审计防火墙设备发送的审计防护策略信息;最后根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。通过生成审查日志可以知道审查记录,在出现隐私数据泄露的情况下,便于进行追踪。
附图说明
39.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
40.图1为本发明实施例提供的一种实现api审计防火墙的方法流程图;
41.图2为本发明实施例提供的api审计防火墙插件程序流程图;
42.图3为本发明实施例提供的实现api审计防火墙的整体流程图;
43.图4为本发明实施例提供的一种实现api审计防火墙的系统结构框图;
44.图5为本发明实施例提供的一种电子设备的结构框图。
45.图标:110-插件部署模块;120-信息获取模块;121-过滤器单元;122-信息采集单元;130-信息发送模块;140-策略加载模块;150-访问处理模块;101-存储器;102-处理器;103-通信接口。
具体实施方式
46.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
47.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范
围。
48.实施例
49.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
50.请参看图1-图3,图1为本发明实施例提供的一种实现api审计防火墙的方法流程图,图2为本发明实施例提供的api审计防火墙插件程序流程图,图3为本发明实施例提供的实现api审计防火墙的整体流程图。该实现api审计防火墙的方法,包括以下步骤:
51.步骤s110:在每台应用服务器上部署预置的api审计防护墙插件;api审计防护墙插件包括api审计防火墙插件jar包,上述部署是指在每台应用服务器上部署api审计防火墙插件jar包,具体是将api审计防火墙插件jar包放入应用服务java依赖路径下,并在应用系统上配置api审计防火墙插件中的过滤器用于采集应用程序用户信息和api信息。上述过滤器的配置包括:对于非springboot框架的应用服务采取在web.xml中添加标签的方式进行配置;对于springboot框架的应用服务不需要添加此配置。
52.步骤s120:获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;上述api访问请求可以是http请求,在收到http请求时采集应用程序用户信息和api信息,可以是通过api审计防火墙插件程序中jar包的过滤器完成,具体包括以下步骤:
53.首先,在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;用于拦截过滤所有在api访问请求。api审计防火墙插件程序jar包实现servlet过滤器接口,servlet过滤器接口的实现包括:使用java语言,创建filterimpl类使用implements关键字实现javax.servlet.filter接口,其中,该类中开发方法可以有3个方法,分别是:方法1:init(filterconfig filterconfig),用于初始化缓存信息和通信器(用于和中安星云api审计防火墙设备通信)。方法2:dofilter(servletrequest request,servletresponse response,filterchain chain),主要用于从请求servlet请求对象中获取用户信息、api信息以及依据审计和防火策略对api请求做审计、报警、阻断操作。方法3:destroy(),主要用于销毁缓存信息对象和通信器对象。
54.然后,获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。上述用户信息是指应用程序用户名;api信息是指api请求对应的请求头信息、url、请求方式、请求参数。
55.步骤s130:将应用程序的用户信息和api信息发送至api审计防火墙设备;api审计防火墙设备收到api审计防火墙插件发送的应用程序用户信息和api信息,一进行数据的记录,二进行审计和防护策略设置。
56.步骤s140:获取api审计防火墙设备发送的审计防护策略信息;上述审计防护策略信息包括多个api策略信息,对不同的api设置有不同的策略信息,比如:有的api设置告警策略,审计到有请求该api时就发送告警信息;有的api设置阻断策略,不允许一些用户访问。上述多个api策略信息可以是根据需要预先设置好的。上述获取可以是api审计防火墙插件加载api审计防火墙设备中的审计防护策略信息得到。
57.步骤s150:根据用户信息、api信息和审计防护策略信息对api访问进行处理。上述进行处理可以是依据策略信息对api请求进行审计、报警、阻断等处理,以此来实现api审计
防火墙的功能。具体包括以下步骤:
58.首先,根据api信息在审计防护策略信息中匹配对应的api策略信息;上述匹配是指匹配相同api的策略信息。
59.然后,根据用户信息和对应的api策略信息对api访问进行处理。具体处理包括以下步骤:
60.判断对应的api策略信息是否为报警,若是,则对api访问不放行,并生成报警信息;若否,则对api访问进行放行。如有的api设置告警策略,审计到有请求该api时就发送告警信息。
61.其中,根据用户信息和对应的api策略信息对api访问进行处理的步骤包括以下步骤:
62.根据用户信息判断对应的api策略信息是否为阻断,若是,则对api访问进行阻断;若否,则对api访问进行放行。有的api设置阻断策略,当检测到用户信息是不允许访问的用户就进行阻断。
63.上述实现过程中,在每台应用服务器上部署预置的api审计防护墙插件;然后获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;然后将应用程序的用户信息和api信息发送至api审计防火墙设备;然后获取api审计防火墙设备发送的审计防护策略信息;最后根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。
64.其中,还包括以下步骤:
65.首先,根据应用程序的用户信息和api信息生成审计日志;
66.然后,将审计日志发送至api审计防火墙设备。通过审查日志可以知道审查记录,在出现隐私数据泄露的情况下,便于进行追踪。
67.基于同样的发明构思,本发明还提出一种实现api审计防火墙的系统,请参看途,图4为本发明实施例提供的一种实现api审计防火墙的系统结构框图。该实现api审计防火墙的系统包括:
68.插件部署模块110,用于在每台应用服务器上部署预置的api审计防护墙插件;
69.信息获取模块120,用于获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;
70.信息发送模块130,用于将应用程序的用户信息和api信息发送至api审计防火墙设备;
71.策略加载模块140,用于获取api审计防火墙设备发送的审计防护策略信息;
72.访问处理模块150,用于根据用户信息、api信息和审计防护策略信息对api访问进行处理。
73.上述实现过程中,插件部署模块110在每台应用服务器上部署预置的api审计防护墙插件;信息获取模块120获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;策略加载模块140将应用程序的用户信息和api信息发送至api审计防火墙设备;访问处理模块150获取api审计防火墙设备发送的审计防护策略信息;访问处
理模块150根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。
74.其中,信息获取模块120包括:
75.过滤器单元121,用于在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;
76.信息采集单元122,用于获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。
77.请参阅图5,图5为本技术实施例提供的电子设备的一种示意性结构框图。电子设备包括存储器101、处理器102和通信接口103,该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,如本技术实施例所提供的一种实现api审计防火墙的系统对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备进行信令或数据的通信。
78.其中,存储器101可以是但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
79.处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器102可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
80.可以理解,图5所示的结构仅为示意,电子设备还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。
81.在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
82.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
83.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
84.综上,本发明实施例提供一种实现api审计防火墙的方法及系统,在每台应用服务器上部署预置的api审计防护墙插件;然后获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;然后将应用程序的用户信息和api信息发送至api审计防火墙设备;然后获取api审计防火墙设备发送的审计防护策略信息;最后根据用户信息、api信息和审计防护策略信息对api访问进行处理。通过api审计防护墙插件采集到应用系统用户信息和api信息发送给api审计防火墙设备,并依据api审计防火墙设备的策略信息对api访问进行阻断等操作,而不需要进行复杂的协议解析,即可对api进行审计并实现api防火墙的功能,方便使用。通过生成审查日志可以知道审查记录,在出现隐私数据泄露的情况下,便于进行追踪。
85.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
86.对于本领域技术人员而言,显然本技术不限于上述示范性实施例的细节,而且在不背离本技术的精神或基本特征的情况下,能够以其它的具体形式实现本技术。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本技术的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本技术内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
技术特征:1.一种实现api审计防火墙的方法,其特征在于,包括以下步骤:在每台应用服务器上部署预置的api审计防护墙插件;获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;将应用程序的用户信息和api信息发送至api审计防火墙设备;获取api审计防火墙设备发送的审计防护策略信息;根据用户信息、api信息和审计防护策略信息对api访问进行处理。2.根据权利要求1所述的实现api审计防火墙的方法,其特征在于,所述获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息的步骤包括以下步骤:在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。3.根据权利要求1所述的实现api审计防火墙的方法,其特征在于,所述根据用户信息、api信息和审计防护策略信息对api访问进行处理,生成处理结果的步骤包括以下步骤:根据api信息在审计防护策略信息中匹配对应的api策略信息;根据用户信息和对应的api策略信息对api访问进行处理。4.根据权利要求3所述的实现api审计防火墙的方法,其特征在于,所述根据用户信息和对应的api策略信息对api访问进行处理的步骤包括以下步骤:判断对应的api策略信息是否为报警,若是,则对api访问不放行,并生成报警信息;若否,则对api访问进行放行。5.根据权利要求3所述的实现api审计防火墙的方法,其特征在于,所述根据用户信息和对应的api策略信息对api访问进行处理的步骤包括以下步骤:根据用户信息判断对应的api策略信息是否为阻断,若是,则对api访问进行阻断;若否,则对api访问进行放行。6.根据权利要求1所述的实现api审计防火墙的方法,其特征在于,还包括以下步骤:根据应用程序的用户信息和api信息生成审计日志;将审计日志发送至api审计防火墙设备。7.一种实现api审计防火墙的系统,其特征在于,包括:插件部署模块,用于在每台应用服务器上部署预置的api审计防护墙插件;信息获取模块,用于获取并根据api访问请求通过api审计防护墙插件获取应用程序的用户信息和api信息;信息发送模块,用于将应用程序的用户信息和api信息发送至api审计防火墙设备;策略加载模块,用于获取api审计防火墙设备发送的审计防护策略信息;访问处理模块,用于根据用户信息、api信息和审计防护策略信息对api访问进行处理。8.根据权利要求7所述的实现api审计防火墙的系统,其特征在于,所述信息获取模块包括:过滤器单元,用于在api审计防护墙插件中创建基于servlet过滤器接口实现的过滤器;
信息采集单元,用于获取并根据api访问请求在基于servlet过滤器接口实现的过滤器中根据应用程序相关信息采集应用程序的用户信息和api信息。9.一种电子设备,其特征在于,包括:存储器,用于存储一个或多个程序;处理器;当所述一个或多个程序被所述处理器执行时,实现如权利要求1-6中任一项所述的方法。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
技术总结本发明提出了一种实现API审计防火墙的方法及系统,涉及网络通信领域。在每台应用服务器上部署预置的API审计防护墙插件;然后通过API审计防护墙插件获取应用程序的用户信息和API信息;然后将应用程序的用户信息和API信息发送至API审计防火墙设备;然后获取API审计防火墙设备发送的审计防护策略信息;最后根据用户信息、API信息和审计防护策略信息对API访问进行处理。通过API审计防护墙插件采集到应用系统用户信息和API信息发送给API审计防火墙设备,并依据API审计防火墙设备的策略信息对API访问进行阻断等操作,而不需要进行复杂的协议解析,即可对API进行审计并实现API防火墙的功能。的功能。的功能。
技术研发人员:唐更新 王晓峰 宋辉 赵卫国
受保护的技术使用者:北京中安星云软件技术有限公司
技术研发日:2022.05.11
技术公布日:2022/11/1