CN115904365B - 一种接口资源识别方法、装置、设备及可读存储介质 - Google Patents
一种接口资源识别方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN115904365B CN115904365B CN202310163110.9A CN202310163110A CN115904365B CN 115904365 B CN115904365 B CN 115904365B CN 202310163110 A CN202310163110 A CN 202310163110A CN 115904365 B CN115904365 B CN 115904365B
- Authority
- CN
- China
- Prior art keywords
- interface function
- function
- interface
- program
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本说明书公开了一种接口资源识别方法、装置、设备及可读存储介质,本说明书提供的接口资源识别方法中,通过切面服务器确定切面程序和切点,在应用服务器中的用于对接口函数传输的业务数据执行指定操作的指定函数的切点处部署切面程序,进而通过切面程序拦截接口函数传输的业务数据,并从业务数据中确定接口函数的属性信息,作为识别出的接口资源。可见,该接口资源识别方法通过在指定函数处部署切面程序的方式,获取接口函数传输的业务数据,进而基于业务数据来识别接口资源,使得服务提供方可基于识别出的接口资源来进行安全防控,以此来保证数据安全。提高了接口资源识别的准确性和灵活性,进一步保证了数据安全。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种接口资源识别方法、装置、设备及可读存储介质。
背景技术
目前,随着互联网技术和业务深入融合的需求,服务提供方愈来愈多地使用服务器,通过接口(Application Programming Interface,API)对外提供服务。当服务提供方体量较大时,提供的接口数量多,接口参数也很多,服务提供方难以准确评估接口资源。使得基于接口资源进行防控存在安全漏洞,难以保证数据安全,导致敏感数据存在泄露风险。其中,接口资源包含接口标识、接口对应的访问数据量、接口对应的访问参数以及接口对应的访问数据类型等。
基于此,本说明书提供一种基于安全切面的接口资源识别方法。
发明内容
本说明书提供一种接口资源识别方法、装置、设备及可读存储介质,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种接口资源识别方法,所述方法应用于切面服务器,应用服务器具有接口函数和指定函数,所述接口函数被调用时,向所述指定函数传输传入数据,包括:
确定切面程序和所述切面程序对应的切点;
通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括解析、解密中的至少一种;
通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行所述指定操作后向所述接口函数返回的;
接收所述切面程序发送的返回数据;
根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
本说明书提供一种接口资源识别方法,所述方法应用于切面服务器,应用服务器具有接口函数、指定函数和应用程序,所述接口函数被调用时,通过所述应用程序进行业务处理,并将经过业务处理后得到的传入数据传输给所述指定函数,包括:
确定切面程序和所述切面程序对应的切点;
通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种;
通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据;
接收所述切面程序发送的传入数据;
根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
本说明书提供一种接口资源识别装置,所述装置应用于切面服务器,应用服务器具有接口函数和指定函数,所述接口函数被调用时,向所述指定函数传输传入数据,包括:
切面程序确定模块,用于确定切面程序和所述切面程序对应的切点;
部署模块,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括解析、解密中的至少一种;
拦截模块,用于通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行所述指定操作后向所述接口函数返回的;
检测模块,用于接收所述切面程序发送的返回数据;
统计模块,用于根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
本说明书提供一种接口资源识别装置,所述装置应用于切面服务器,应用服务器具有接口函数、指定函数和应用程序,所述接口函数被调用时,通过所述应用程序进行业务处理,并将经过业务处理后得到的传入数据传输给所述指定函数,包括:
切面程序确定模块,用于确定切面程序和所述切面程序对应的切点;
部署模块,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种;
拦截模块,用于通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据;
检测模块,用于接收所述切面程序发送的传入数据;
统计模块,用于根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述接口资源识别方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述接口资源识别方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
本说明书提供的接口资源识别方法中,通过切面服务器确定切面程序和切点,在应用服务器中的用于对接口函数传输的业务数据执行指定操作的指定函数的切点处部署切面程序,进而通过切面程序拦截接口函数传输的业务数据,并从业务数据中确定接口函数的属性信息,作为识别出的接口资源。
可见,该接口资源识别方法通过在指定函数处部署切面程序的方式,获取接口函数传输的业务数据,进而基于业务数据来识别接口资源,使得服务提供方可基于识别出的接口资源来进行安全防控,以此来保证数据安全。提高了接口资源识别的准确性和灵活性,进一步保证了数据安全。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种接口资源识别方法的流程示意图;
图2为本说明书中一种接口资源识别方法的流程示意图;
图3为本说明书中一种接口资源识别装置的结构示意图;
图4为本说明书中一种接口资源识别装置的结构示意图;
图5为本说明书提供的对应于图1或图2的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
另外,需要说明的是,本说明书中所有获取信号、信息或数据的动作都是在遵照所在地相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
应用程序编程接口(Application Programming Interface,API)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。其中,例程为某个系统对外提供的功能接口或服务的集合。在服务提供方体量较大,提供的接口数量也较多的情况下,难免会出现后续不再使用但尚未清理的接口,导致服务提供方难以准确评估接口资源。因此如何对服务提供方的接口资源进行准确识别,成为目前服务提供方需要解决的问题之一。
基于此,本说明书提供一种基于安全切面的接口资源识别方法,通过采用安全切面的方式,在应用服务器中的指定函数的切点处,部署切面程序,在无需获取私有协议和/或加密算法的情况下,即可获取接口函数传输的业务数据,并基于业务数据确定接口函数的属性信息,以此来达成识别接口资源这一目的。并且,将基于业务数据确定出的接口函数的属性信息作为识别出的接口资源,保证了接口资源中数据的完整性,避免了基于日志确定接口资源时存在的无法确定接口函数的完整属性信息的这一问题。其中,该切面程序为用于对接口传输的业务数据进行拦截的切面程序。
其中,上文所说的安全切面是指通过采用面向切面编程(Aspect-orientedProgramming,AOP)的方式,在不修改业务应用程序的情况下,在业务应用程序的运行逻辑中动态的添加或修改用于实现安全切面业务的切面程序的方法。使得在实现安全切面业务的同时,使实现安全切面业务的程序与业务应用程序解耦,从而避免高耦合导致的开发迭代问题。
这里说的切面程序,即基于业务运行逻辑来实现安全切面业务的增强程序。可通过采用面向切面编程的方式,将切面程序注入至业务应用程序的相应切点处,该切面程序在执行业务应用程序的过程中被触发执行,实现所需的安全切面业务功能。
而业务应用程序在执行业务时,业务应用程序通常通过方法之间的调用进行业务执行。因此,可将业务应用程序中的任意方法作为切面程序的切入点,即上述所说的切点,并将切面程序注入对应切点。使得业务应用程序在执行至切点,即调用该切点对应的业务应用程序的方法时,执行在该切点注入的切面程序。
通常,负责将切面程序注入至切点的过程的代码存在较高的可复用性,因此,通常将实现这一过程的程序抽象为一个服务模块,即切面底座。切面底座可从提供安全切面业务的服务器获取需要部署的切面程序以及获取切面程序在业务应用程序中注入的切点,在应用容器启动后被唤醒并在业务应用程序的切点处注入对应的切面程序。
业务应用程序可以是业务平台的服务器中提供业务服务的业务应用程序。其中,业务服务可以是业务平台的服务器向用户提供的业务服务,如,查询业务、支付业务等。业务服务还可以是业务平台的某服务器向其他服务器提供的业务服务,如,结算业务等。
当然了,由上述描述可知,为了使安全切面业务的程序与业务应用程序解耦,本说明书通过采用面向切面编程的方式使得安全切面业务的程序与业务应用程序在业务执行时相互交织,但又互相平行可各自独立维护。因此,区别于业务应用程序的业务提供方,提供安全切面业务的第三方可通过服务器管理安全切面业务所涉及的内容,例如,安全切面业务管控策略的配置、切面程序的版本迭代、切面程序的部署规则配置等等。当然,提供安全切面业务的可以是第三方,也可以是业务提供方。
服务器在管理安全切面业务所涉及的内容时,可通过配置文件记录各种配置信息,例如各种策略的配置、切面程序的部署规则配置等。使得切面底座可根据配置文件完成对切面程序的部署,或者服务器可根据配置文件实现安全切面业务。
在实际应用中,业务提供方通常设置有包括若干物理机或物理服务器的机房,通过物理机提供业务应用程序所需的物理资源。当然,一个业务应用程序可能无需整个物理机的所有物理资源,于是,一般还会通过虚拟化技术在一个物理机上运行多个虚拟主机(virtual hosting)。各个虚拟主机之间是互相独立的,各自享有物理机的部分物理资源。然后,可在虚拟主机中部署应用容器,并通过应用容器运行业务应用程序。应用容器通常包含分配给该应用容器的物理资源,如CPU、内存等,以及提供给该应用容器的运行环境,如操作系统(Operating System,OS)或其他运行环境数据,如,容器的序列(Serial Number,SN)号、分配的IP(Influential Property)、应用名、租户、环境变量等)。业务应用程序可部署在应用容器中以执行业务。
而在基于安全切面执行业务的场景中,业务提供方或者提供安全切面业务的第三方的服务器可提供服务器,通过服务器管理安全切面业务所涉及的内容,并将切面底座部署在应用容器中,通过切面底座将切面程序注入业务应用容器中的业务应用程序中,以为业务提供方的应用容器提供安全切面业务的支持。
于是,可预先在业务提供方的应用容器中部署切面底座。一般情况下,在启动应用容器时,可唤起提供给应用容器的操作系统,以及运行预先部署的切面底座,通过切面底座从服务器中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。此外,切面底座也可在业务应用程序执行过程中,从服务器中得到切面程序和业务应用程序的切点,并将切面程序注入应用容器中的业务应用程序的切点处。
当然,切面底座如何从服务器中得到部署切面程序所需的信息,可根据需要设置。例如,可以是根据配置文件主动从服务器中拉取所需的信息,或者服务器可主动下发使切面底座接收所需的信息。将切面程序注入业务应用程序的切点后,业务应用程序在执行过程中,即可触发该切面程序从而实现相应的安全切面业务功能。以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书提供的一种接口资源识别方法的流程示意图。
S100:确定切面程序和所述切面程序对应的切点。
本说明书提供的一个或多个实施例中,该接口资源识别方法可由切面服务器执行。
目前,可通过获取应用服务器中的网络流量的方式,来自动识别应用服务器中的接口资源。但在接口函数传输的网络流量为经加密算法加密后的流量,或传输的网络流量的报文格式为私有协议定义的格式时,会出现无法基于网络流量确定出接口资源的情况。因此,本方案通过在指定函数的切点处注入切面程序的方式,来获取接口函数的业务数据,以基于获取到的业务数据来识别接口资源。
基于此,为了在不需要确定应用服务器对应的私有协议和加密算法的情况下,确定接口资源,该切面服务器可确定切面程序和该切面程序对应的切点。
具体的,在该切面服务器中可预先存储有切点列表和切面程序。则该切面服务器可从切点列表和预存的各切面程序中,确定需注入的切面程序,以及该切面程序对应的切点。
然后,该切面服务器可根据确定出的切面程序和该切面程序对应的切点,确定部署请求,并将部署请求发送至应用服务器中。其中,该应用服务器为预先部署有切面底座的服务器。
最后,该应用服务器可根据接收收到的部署请求,确定部署请求中携带的切面程序和切面程序对应的节点。
当然,该部署请求中还可仅携带有切面程序的元数据,则应用服务器可对该部署请求进行解析,得到的解析结果中包含有该元数据。于是,该应用服务器可根据解析得到的元数据,获取该切面程序。
另外,上述部署请求可为响应于检测指令下发的,也可为该切面服务器响应于用户操作下发的,还可为该切面服务器监测到应用服务器开始对外提供服务时下发的,或者,还可为该应用服务器启动时,主动向切面服务器获取的。具体如何确定该部署请求可根据需要进行设置,本说明书对此不做限制。
S102:通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中每当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述执行操作包括解析、解密中的至少一种。
在本说明书提供的一个或多个实施例中,应用服务器通过接口对外提供服务。因此,接口函数可接收其他服务器向该应用服务器发送的调用请求。而本说明书中需通过切面程序获取的,即为该应用服务器中的接口函数所接收到的调用请求中的业务数据。
但目前应用服务器和其他服务器在进行通信时,往往采用私有协议或加密算法对通信的数据进行加密后,再将加密数据进行传输,这也就使得在接收到其他服务器发送的数据后,需首先对数据进行解析或解密后,才能进行处理。具体的,以接口函数对接收调用请求为例,应用服务器中的接口函数对接收到的调用请求进行处理时,会通过指定函数对调用请求进行解析或解密,再将解析后或解密后的业务数据作为返回数据发送给接口函数。接口函数根据接收到的返回数据进行处理并响应。其中,该指定函数为用于对接口函数传输的传入数据执行指定操作的函数。该指定操作包括解析、解密中的至少一种。该应用服务器为部署有指定函数和接口函数的服务器。
为了避免获取到的业务数据为基于私有协议加密,或基于加密算法加密后的数据,导致无法基于获取到的业务数据确定出接口函数对应的属性信息的情况出现。本说明书提供一种新的发明构思:在指定函数的切面处注入切面程序,并当指定函数对接口函数发送的传入数据执行指定操作后,通过切面程序拦截该指定函数发送的返回数据,即可在无需获取私有协议和解密算法的情况下,确定接口函数对应的业务数据,进而基于获取到的业务数据来识别接口资源。保证了确定出的接口资源的准确度和完整性。
基于此,该应用服务器可通过预先部署的切面底座,在指定函数的切点处,部署切面程序。
具体的,该应用服务器可通过预先部署的切面底座,接收切面服务器发送的部署请求,并对部署请求进行解析,确定出部署请求中携带的切面程序和切面程序对应的切点的标识。并在确定出切面程序和却面程序对应的切点的标识后,通过该切面底座,将该切面程序注入到该指定函数对应的切点处。
S104:通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行指定操作后向所述接口函数返回的。
在本说明书提供的一个或多个实施例中,如前所述的,在将切面程序注入后,该切面服务器可通过该切面程序,将指定函数向接口函数返回的返回数据进行拦截,即可获取到解析和/或解密后的业务数据。以便后续可基于该解析和/解密后的业务数据,来识别接口资源。
基于此,该切面服务器可通过切面程序,将该指定函数向接口函数返回的返回数据进行拦截。
具体的,该接口函数可向该指定函数发送调用请求和传入数据。则该指定函数可根据接收到的调用请求和传入数据,对传入数据执行指定操作,即,对传入数据执行解析和/或解密操作。则在对传入数据执行指定操作后,该指定函数可将该执行指定操作后的传入数据作为返回数据,返回至该接口函数。
于是,预先注入到指定函数的切面处的切面程序,可将该指定函数返回至接口函数的返回数据进行拦截。
进一步的,该指定函数和该接口函数可为相互独立的两个函数,该指定函数也可为该接口函数的一部分。在接口函数被调用后,即通过该接口函数对应的指定函数,对该接口函数接收到的业务数据执行指定操作。具体该指定函数和该接口函数的关系,以及接口函数如何调用该指定函数,可根据需要进行设置,本说明书对此不做限制。
当然,上述“拦截”的动作,可为通过切面程序将返回数据进行接收,并发送给接口函数其他数据,或不向接口函数发送数据,也可为通过切面程序将返回数据进行接收,并由该切面程序将该返回数据发送至该接口函数。
S106:接收所述切面程序发送的返回数据。
在本说明书提供的一个或多个实施例中,本说明书提供的该接口资源识别方法,其目的是对服务提供方的接口资源进行准确识别。而本说明书为了达到这一技术效果,采用的是基于解析和/或解密后的业务数据,即,返回数据,将各接口函数对应的属性信息进行统计,以将统计得到的各接口函数分别对应的属性信息作为接口资源的技术手段。
因此,在拦截到返回数据后,该切面程序可将拦截到的数据发送至该切面服务器,由切面服务器根据接收到的返回数据来执行步骤。
其中,该切面程序可为每当确定出返回数据,就将该返回数据发送至该切面服务器,也可为预先划分各周期,并针对每个周期,在该周期开始时将上一个周期接收到的业务数据发送至切面服务器。其中,该周期可为时、天、月等等。如,假设每个周期的时长为一小时,且上一周期对应的时间段为9:00-10:00,当前周期对应的时间段为10:00-11:00,则在上一周期对应的时间段内,该切面程序可将该时间段内的返回数据进行拦截,并将拦截到的数据进行存储。当下一周期开始后,即,当时间到达10:00时,将存储的上一周期对应的返回数据进行发送。
当然,也可为该切面服务器按照预设时长从该应用服务器中拉取数据。于是,该应用服务器中注入的切面程序可视为切面客户端。每隔预设时长,该切面客户端和该切面服务器之间可通过拉取模式或推送模式来实现返回数据的传输。具体该切面服务器如何从应用服务器获取数据可根据需要进行设置,本说明书对此不做限制。
S108:根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
在本说明书提供的一个或多个实施例中,如前所述的,本说明书中的接口资源方法采用的是基于获取到的返回数据确定接口对应的属性信息,并将接口对应的属性信息作为接口资源的技术手段。因此,在获取到该返回数据后,该切面服务器可基于返回数据识别接口资源。
具体的,接口资源包含接口标识、接口函数对应的访问量、接口函数对应的访问参数以及接口函数对应的访问数据类型等等。其中,接口函数对应的访问量为指定函数向接口函数发送的返回数据的字节数。接口函数对应的访问参数为其他服务器调用该接口来实现业务时,向该接口函数传入的参数。该接口函数对应的访问数据类型为该返回数据中包含的该返回数据执行业务时需涉及到的数据类型,如,身份证类型、用户姓名类型,或者,敏感数据类型、非敏感数据类型等等,或者,该访问数据类型还可为该返回数据中各数据对应的数据类型。具体该访问数据类型对应的种类以及如何确定等,均可根据需要进行设置,本说明书对此不做限制。
因此,该切面服务器可对接收到的业务数据进行解析,并根据解析得到的业务数据中包含的接口标识,确定该接口标识对应的访问数据量量、该接口标识对应的访问参数以及该接口标识对应的访问数据类型。
然后,针对每个接口函数,根据该接口函数对应的接口标识,统计该接口函数对应的访问数据量、访问参数以及访问数据类型,作为该接口函数的属性信息。
最后,该切面服务器可将确定出的各接口函数分别对应的属性信息,作为识别出的接口资源。
基于图1所述的接口资源识别方法,通过切面服务器确定切面程序和切点,在应用服务器中用于对接口函数传输的业务数据执行解析或解密操作的指定函数的切点处部署切面程序,进而通过切面程序拦截指定函数解析或解密后向接口函数发送的返回数据,并从返回数据中确定接口函数的属性信息,作为识别出的接口资源。可见,该接口资源识别方法通过在指定函数处部署切面程序的方式,获取接口函数传输的解析或解密后的业务数据,进而基于获取到的业务数据来识别接口资源。在应用服务器和其他服务器通过私有协议和/或加密算法来对传输数据进行封装的情况下,无需获取对应的协议或加密算法,也能准确得到接口资源。进而使得服务提供方可基于识别出的接口资源来进行安全防控,以此来保证数据安全。提高了接口资源识别的准确性和灵活性,进一步保证了数据安全。
另外,在确定出的接口资源中,相较于其他属性信息,接口标识由于可用于表征应用服务器中的接口函数,因而显得更为重要。因此,在返回数据的数据量较大时,该切面服务器还可通过切面程序,确定返回数据对应的接口函数的接口标识,并直接将接口标识作为返回数据发送至切面服务器中。切面服务器可根据接收到的返回数据,确定各接口函数,并将确定出的各接口函数作为识别出的接口资源。当然,该接口函数的属性信息具体可包含的数据类型可根据需要进行设置,本说明书对此不做限制。
进一步的,针对每个接口函数,若可对该接口函数进行解析,即可确定出该接口函数对应的可用参数,并将该可用参数作为识别出的该接口函数对应的接口资源。进而由服务提供方基于接口资源进行更准确地安全防控。基于此,该切面服务器可根据获取到的返回数据,确定该返回数据对应的各接口函数,并对各接口函数进行解析。
具体的,该服务器可首先确定返回数据,并根据返回数据,确定该返回数据对应的各接口函数。
然后,针对每个接口函数,该服务器可确定该接口函数对应的源程序。
最后,该服务器可对该接口函数对应的源程序进行解析,确定该接口函数对应的可用参数。则该服务器可将确定出的该接口函数对应的可用参数,作为该接口函数对应的属性信息。其中,该可用参数为该接口函数在接口到指定函数发送的返回数据后,根据返回数据调用业务程序执行业务时,从返回数据中可传入到该接口函数中的参数。或者,该可用参数可为返回数据中可传入到该接口函数中的参数。
进一步的,针对每个可用参数,若该可用参数不参与业务,则该可用参数可为后续不再使用但尚未清理的参数,这种参数需要识别出并处理,如,进行安全防控。而在已知接口函数对应的可用参数的情况下,若基于返回数据确定出可用参数中的某可用参数未参与业务,则确定出的未参与业务的可用参数即为上述需要进行处理的参数。将这种参数作为异常参数,则该切面服务器还可基于上述确定出的接口函数对应的可用参数,来确定异常参数。
具体的,该切面服务器可针对每个接口函数,根据统计确定出的该接口函数对应的访问参数以及上述确定出的可用参数,来确定未参与业务的可用参数,作为异常参数。在确定出异常参数后,该切面服务器还可根据确定出的异常参数,来发送提示信息,以提示用户该接口函数中存在异常参数。以使用户根据该提示信息对该异常参数进行处理。
更进一步的,针对每个接口函数,若根据返回数据确定该接口函数被调用,但根据历史周期内确定出的返回数据中,该接口函数没有任何的调用记录。则该接口可为被废弃但尚未被清理的接口函数,且本次调用该接口函数的目的可为网络攻击。在该情况下,该接口函数可作为识别出的异常接口函数。
具体的,该切面服务器可按照预设的周期,对接收到的返回数据进行统计,确定当前周期内被调用的各接口函数。其中,该周期与上述切面程序按照有预设周期向切面服务器发送返回数据时的周期可为相同周期。当然,也可为不同周期。如,切面程序以小时为周期向切面服务器发送返回数据,切面服务器以天为周期统计各接口函数分别对应的属性信息。也就是说,切面程序按照预设的第一周期向切面服务器发送返回数据,切面服务器按照预设的第二周期统计各接口函数分别对应的属性信息。周期、第一周期和第二周期分别对应的时长可根据需要进行设置,本说明书对此不做限制。
然后,该切面服务器针对当前周期内被调用的每个接口函数,判断该接口函数在各历史周期内是否被调用过。
若调用过,则表征该接口函数为正常提供服务的接口函数,而非为上述所言的被废弃但尚未清理的接口函数。
若未被调用过,则该接口函数可为被废弃但尚未清理的接口函数,于是,该切面服务器可将该接口函数作为识别出的异常接口函数,并根据该异常接口函数向用户发送提示信息,以提示用户存在异常接口函数。
其中,该用于提示用户存在异常接口函数的提示信息,与上述用于提示用户存在异常参数的提示信息,可为相同提示信息。即,将存在异常参数的接口函数作为异常接口函数,一旦出现异常接口函数就向用户发送提示信息。当然,该用于提示用户存在异常接口函数的提示信息与上述用于提示用户存在异常参数的提示信息还可为不同提示信息。即,当存在异常参数时,该切面服务器向用户发送用于提示存在异常参数的第一提示信息,当存在异常接口函数时,该切面服务器向用户发送用于提示存在异常接口函数的第二提示信息。该第一提示信息和该第二提示信息的形式(如,声、光、文字等),以及提示时发送的内容(如,黄灯闪烁代表存在异常接口函数,红灯闪烁代表存在异常参数,或者直接提示“存在异常接口”或“存在异常参数”等)均可根据需要进行设置,本说明书对此不做限制。
另外,与上述接口函数相似,接口函数对应的可用参数也可能存在弃用但未被清理的情况出现。因此,该切面服务器还可基于相同思想,确定异常参数。
具体的,该切面服务器可按照预设的周期,对接口到的返回数据进行统计,确定当前周期内被调用的各接口函数,以及被调用的接口函数的访问参数。
然后,该切面服务器可针对当前周期内被调用的每个接口函数,判断该接口函数对应的访问参数是否在历史周期内被调用的该接口函数的访问参数中。其中,历史周期内被调用的接口函数的访问参数为,在历史周期内,根据历史周期的返回数据,统计确定出的目标接口函数对应的访问参数。该目标接口函数为上述当前周期内被调用的该接口函数。
若在,则该切面服务器可确定该接口函数对应的访问参数中没有异常参数。
若否,则该切面服务器可从当前周期内确定出的该接口函数的访问参数中,确定未出现在历史周期中的访问参数,作为异常参数。于是,该切面服务器可根据确定出的异常参数发送提示信息,以提示用户该接口函数存在异常参数。
其中,上述历史周期可为当前周期前指定数量个周期,也可为当前周期的上一个周期,或者,还可为从开始执行该接口资源识别方法对应的第一个周期,一直到当前周期的上一个周期为止的所有历史周期。
另外,对于上述确定出的异常接口函数和异常参数,用户可对该异常接口函数和异常参数进行处理。其中,该用户可为服务提供方的工作人员。在进行处理或确定该异常接口函数和异常参数为误判,实际并无异常的情况下,该切面服务器还可将上述异常接口函数和异常参数作为正常的接口资源进行存储。
进一步的,在基于接口函数的每次调用,若该次调用的目的为网络攻击,则根据周期确定出异常参数或异常接口函数时,可能网络攻击已经完成。因此,在本说明书中,该切面程序还可每当拦截到返回数据,就将该返回数据发送至该切面服务器。
由切面服务器根据确定出的返回数据和历史周期对应出的接口资源,判断该返回数据对应的接口函数和接口函数对应的访问参数是否异常。若是,则该切面服务器可根据确定出的异常,向用户发送提示信息,以提示用户存在异常接口函数和/或存在异常参数。若否,则该切面服务器可将确定出的接口函数的属性信息进行存储,以便于后续基于存储的接口函数的属性信息确定当前周期的接口资源。
更进一步的,在本说明书中,应用服务器中部署有接口函数,也就是说,应用服务器通过接口来对外提供服务。因此,针对每个应用服务器,若该应用服务器运行正常,但该应用服务器上的接口函数未被调用,则该接口函数可为上述废弃但尚未清理的接口函数。
因此,针对每个切面程序,该切面服务器还可接收该切面程序发送的心跳信息。
于是,在根据该心跳信号确定该切面程序所在的应用服务器正常,且未接收到该切面程序发送的返回数据的情况下,该切面服务器可确定该应用服务器中存在异常接口函数。于是,该切面服务器可将该应用服务器中的接口函数作为识别出的异常接口函数。
需要说明的是,本说明书中的应用服务器可为响应于接口函数的调用并执行业务的服务器,也可为用于执行业务的执行服务器和其他服务器之间提供“接口”的服务器,即,该应用服务器不执行业务,而仅是将业务数据进行接收,并将接收到的业务数据发送至执行服务器。由执行服务器对接收到的业务数据进行执行并向应用服务器返回响应数据,由应用服务器根据接收到的响应数据,向其他服务器返回执行后的业务数据。其中,上述其他服务器为除该应用服务器和该执行服务器外的其他服务器。
基于同样思路,本说明书还提供一种接口资源识别方法,以便于在应用程序进行业务处理后,基于业务处理得到的数据来确定接口资源。如图2所示。
图2为本说明书提供的一种接口资源识别方法的流程示意图。
S200:确定切面程序和所述切面程序对应的切点。
S202:通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种;
本说明书提供的一个或多个实施例中,该接口资源识别方法同样可由切面服务器执行。
在本说明书提供的一个或多个实施例中,应用服务器通过接口对外提供服务。因此,接口函数可接收其他服务器向该应用服务器发送的业务数据,并对该业务数据进行处理后,向其他服务器返回处理后的业务数据。而本说明书中需通过切面程序获取的,即为该应用服务器中的接口函数向其他服务器返回的处理后的业务数据。
但目前应用服务器和其他服务器在进行通信时,往往采用私有协议或加密算法对通信的数据进行加密后,再将加密数据进行传输。具体的,以接口函数对接收调用请求为例,应用服务器中的接口函数可根据该调用请求,通过应用程序进行业务处理,并将经过业务处理后的传入数据传输到指定函数中。指定函数可对接收到的传入数据进行加密和/或封装,并将加密和/或封装后的传入数据作为返回数据,返回至接口函数。接口函数将接收到的返回数据发送至其他服务器。其中,该指定函数为用于对接口函数传输的传入数据执行指定操作的函数。该指定操作包括加密、封装中的至少一种。该应用服务器为部署有指定函数、接口函数和应用程序的服务器。
为了避免获取到的业务数据为基于私有协议加密,或基于加密算法加密后的数据,导致无法基于获取到的业务数据确定出接口函数对应的属性信息的情况出现。本说明书提供一种新的发明构思:在指定函数的切面处注入切面程序,并当指定函数对接口函数发送的传入数据执行指定操作前,通过切面程序拦截该接口函数发送的传入数据,即可在无需获取私有协议和解密算法的情况下,确定接口函数对应的业务数据,进而基于获取到的业务数据来识别接口资源。保证了确定出的接口资源的准确度和完整性。
基于此,该应用服务器可通过预先部署的切面底座,在指定函数的切点处,部署切面程序。
具体的,确定切面程序和切面程序对应的切点,以及在切面程序对应的切点处注入切面程序的步骤,与上述步骤S100~S102的操作可为相同操作。具体可参见上述S100~S102的描述,本说明书对此不再赘述。
S204:通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据。
在本说明书提供的一个或多个实施例中,如前所述的,在将切面程序注入后,该切面服务器可通过该切面程序,将接口函数向指定函数发送的传入数据进行拦截,即可获取到解析和/或解密后的业务数据。以便后续可基于该解析和/解密后的业务数据,来识别接口资源。
基于此,该切面服务器可通过切面程序,将该接口函数向指定函数发送的传入数据进行拦截。
S206:接收所述切面程序发送的传入数据。
S208:根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
在本说明书提供的一个或多个实施例中,接收传入数据、根据传入数据确定接口资源的操作,与上述步骤S106~S108中接收返回数据以及根据返回数据确定接口资源的操作可为相同操作。具体可参见步骤S106~S108的描述,本说明书对此不再赘述。
基于图2所述的接口资源识别方法,通过切面服务器确定切面程序和切点,在应用服务器中用于对接口函数传输的业务数据执行加密或封装操作的指定函数的切点处部署切面程序,进而通过切面程序拦截指定函数加密前或封装前的传入数据,并从传入数据中确定接口函数的属性信息,作为识别出的接口资源。可见,该接口资源识别方法通过在指定函数处部署切面程序的方式,获取接口函数传输的解析或解密后的业务数据,进而基于获取到的业务数据来识别接口资源。在应用服务器和其他服务器通过私有协议和/或加密算法来对传输数据进行封装的情况下,无需获取对应的协议或加密算法,也能准确得到接口资源。进而使得服务提供方可基于识别出的接口资源来进行安全防控,以此来保证数据安全。提高了接口资源识别的准确性和灵活性,进一步保证了数据安全。
另外,在本说明书的一个或多个实施例中,上述传入数据和返回数据在确定时的操作存在差异外,上述传入数据和返回数据均为业务数据,且均为未经私有协议和/或加密算法进行封装和/或加密的业务数据。因此,根据传入数据确定接口资源,以及根据返回数据确定接口资源等的操作,均可为相同操作,具体可参见上述对接口资源识别方法中S100~S108后的描述,本说明书对此不再赘述。
基于同样思路,本说明书还提供一种新的异常检测装置的示意图,如图3和图4所示。
图3为本说明书提供的一种异常检测装置示意图,所述装置应用于切面服务器,应用服务器具有接口函数和指定函数,所述接口函数被调用时,向所述指定函数传输传入数据。其中:
切面程序确定模块300,用于确定切面程序和所述切面程序对应的切点。
部署模块302,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括解析、解密中的至少一种。
拦截模块304,用于通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行所述指定操作后向所述接口函数返回的。
检测模块306,用于接收所述切面程序发送的返回数据。
统计模块308,用于根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
可选地,统计模块308,用于对接收到的返回数据进行解析,确定所述返回数据对应的各接口函数,针对每个接口函数,根据该接口函数对应的各返回数据,统计该接口函数的访问数据量、访问参数以及传输的数据类型,作为该接口函数的属性信息。
可选地,拦截模块304,用于根据所述返回数据,确定各接口函数,针对每个接口函数,通过预先部署的切面底座,向所述切面程序注入解析参数函数,使所述切面程序通过所述解析参数函数,确定该接口函数的可用参数。
可选地,统计模块308,用于针对每个接口函数,根据统计到的该接口函数的访问参数以及所述可用参数,确定未参与业务的可用参数,作为异常参数,根据确定出的异常参数,发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
可选地,统计模块308,用于按照预设的周期,对接收到的返回数据进行统计,确定当前周期内被调用的各接口函数,针对当前周期内被调用的每个接口函数,判断该接口函数在各历史周期内是否被调用过,若是,则确定该接口函数没有异常,若否,则确定该接口函数为异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
可选地,统计模块308,用于按照预设的周期,对接收到的返回数据进行统计,确定当前周期内被调用的各接口函数,以及确定所述被调用的各接口函数的访问参数,针对当前周期内被调用的每个接口函数,判断该接口函数的访问参数是否在历史周期内被调用的该接口函数的访问参数中,若是,则确定该接口函数的访问参数没有异常,若否,则确定未出现在历史周期中的访问参数为异常参数,并发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
可选地,统计模块308,用于接收所述切面程序发送的心跳信号,若根据所述心跳信号确定所述应用服务器正常,且未接收到所述切面程序发送的返回数据,将所述应用服务器中的接口函数,作为识别出的异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
图4为本说明书提供的一种异常检测装置示意图,所述装置应用于切面服务器,应用服务器具有接口函数、指定函数和应用程序,所述接口函数被调用时,通过所述应用程序进行业务处理,并将经过业务处理后得到的传入数据传输给所述指定函数,其中:
切面程序确定模块400,用于确定切面程序和所述切面程序对应的切点。
部署模块402,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种。
拦截模块404,用于通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据。
检测模块406,用于接收所述切面程序发送的传入数据。
统计模块408,用于根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源。
可选地,拦截模块404,用于对接收到的传入数据进行解析,确定所述传入数据对应的各接口函数,针对每个接口函数,根据该接口函数对应的各传入数据,统计该接口函数的访问数据量、访问参数以及传输的数据类型,作为该接口函数的属性信息。
可选地,统计模块408,用于根据所述传入数据,确定各接口函数,针对每个接口函数,通过预先部署的切面底座,向所述切面程序注入解析参数函数,使所述切面程序通过所述解析参数函数,确定该接口函数的可用参数。
可选地,统计模块408,用于针对每个接口函数,根据统计到的该接口函数的访问参数以及所述可用参数,确定未参与业务的可用参数,作为异常参数,根据确定出的异常参数,发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
可选地,统计模块408,用于按照预设的周期,对接收到的传入数据进行统计,确定当前周期内被调用的各接口函数,针对当前周期内被调用的每个接口函数,判断该接口函数在各历史周期内是否被调用过,若是,则确定该接口函数没有异常,若否,则确定该接口函数为异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
可选地,统计模块408,用于按照预设的周期,对接收到的传入数据进行统计,确定当前周期内被调用的各接口函数,以及确定所述被调用的各接口函数的访问参数,针对当前周期内被调用的每个接口函数,判断该接口函数的访问参数是否在历史周期内被调用的该接口函数的访问参数中,若是,则确定该接口函数的访问参数没有异常,若否,则确定未出现在历史周期中的访问参数为异常参数,并发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
可选地,统计模块408,用于接收所述切面程序发送的心跳信号,若根据所述心跳信号确定所述应用服务器正常,且未接收到所述切面程序发送的传入数据,将所述应用服务器中的接口函数,作为识别出的异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1或图2所示的接口资源识别方法。
本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1或图2所示的接口资源识别方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
Claims (18)
1.一种接口资源识别方法,所述方法应用于切面服务器,应用服务器具有接口函数和指定函数,所述接口函数被调用时,向所述指定函数传输传入数据,所述方法包括:
确定切面程序和所述切面程序对应的切点;
通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括解析、解密中的至少一种;
通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行所述指定操作后向所述接口函数返回的;
接收所述切面程序发送的返回数据;
根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源,其中,针对每个接口函数,该接口函数的属性信息包括该接口函数的数据访问量、访问参数以及传输的数据类型。
2.如权利要求1所述的方法,根据所述返回数据,统计所述接口函数对应的属性信息,具体包括:
对接收到的返回数据进行解析,确定所述返回数据对应的各接口函数;
针对每个接口函数,根据该接口函数对应的各返回数据,统计该接口函数的访问数据量、访问参数以及传输的数据类型,作为该接口函数的属性信息。
3.如权利要求2所述的方法,所述方法还包括:
根据所述返回数据,确定各接口函数;
针对每个接口函数,通过预先部署的切面底座,向所述切面程序注入解析参数函数,使所述切面程序通过所述解析参数函数,确定该接口函数的可用参数。
4.如权利要求3所述的方法,所述方法还包括:
针对每个接口函数,根据统计到的该接口函数的访问参数以及所述可用参数,确定未参与业务的可用参数,作为异常参数;
根据确定出的异常参数,发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
5.如权利要求1所述的方法,所述方法还包括:
按照预设的周期,对接收到的返回数据进行统计,确定当前周期内被调用的各接口函数;
针对当前周期内被调用的每个接口函数,判断该接口函数在各历史周期内是否被调用过;
若是,则确定该接口函数没有异常;
若否,则确定该接口函数为异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
6.如权利要求1所述的方法,所述方法还包括:
按照预设的周期,对接收到的返回数据进行统计,确定当前周期内被调用的各接口函数,以及确定所述被调用的各接口函数的访问参数;
针对当前周期内被调用的每个接口函数,判断该接口函数的访问参数是否在历史周期内被调用的该接口函数的访问参数中;
若是,则确定该接口函数的访问参数没有异常;
若否,则确定未出现在历史周期中的访问参数为异常参数,并发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
7.如权利要求1所述的方法,所述方法还包括:
接收所述切面程序发送的心跳信号;
若根据所述心跳信号确定所述应用服务器正常,且未接收到所述切面程序发送的返回数据,将所述应用服务器中的接口函数,作为识别出的异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
8.一种接口资源识别方法,所述方法应用于切面服务器,应用服务器具有接口函数、指定函数和应用程序,所述接口函数被调用时,通过所述应用程序进行业务处理,并将经过业务处理后得到的传入数据传输给所述指定函数,所述方法包括:
确定切面程序和所述切面程序对应的切点;
通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种;
通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据;
接收所述切面程序发送的传入数据;
根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源,其中,针对每个接口函数,该接口函数的属性信息包括该接口函数的数据访问量、访问参数以及传输的数据类型。
9.如权利要求8所述的方法,根据所述传入数据,统计所述接口函数对应的属性信息,具体包括:
对接收到的传入数据进行解析,确定所述传入数据对应的各接口函数;
针对每个接口函数,根据该接口函数对应的各传入数据,统计该接口函数的访问数据量、访问参数以及传输的数据类型,作为该接口函数的属性信息。
10.如权利要求9所述的方法,所述方法还包括:
根据所述传入数据,确定各接口函数;
针对每个接口函数,通过预先部署的切面底座,向所述切面程序注入解析参数函数,使所述切面程序通过所述解析参数函数,确定该接口函数的可用参数。
11.如权利要求10所述的方法,所述方法还包括:
针对每个接口函数,根据统计到的该接口函数的访问参数以及所述可用参数,确定未参与业务的可用参数,作为异常参数;
根据确定出的异常参数,发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
12.如权利要求8所述的方法,所述方法还包括:
按照预设的周期,对接收到的传入数据进行统计,确定当前周期内被调用的各接口函数;
针对当前周期内被调用的每个接口函数,判断该接口函数在各历史周期内是否被调用过;
若是,则确定该接口函数没有异常;
若否,则确定该接口函数为异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
13.如权利要求8所述的方法,所述方法还包括:
按照预设的周期,对接收到的传入数据进行统计,确定当前周期内被调用的各接口函数,以及确定所述被调用的各接口函数的访问参数;
针对当前周期内被调用的每个接口函数,判断该接口函数的访问参数是否在历史周期内被调用的该接口函数的访问参数中;
若是,则确定该接口函数的访问参数没有异常;
若否,则确定未出现在历史周期中的访问参数为异常参数,并发送提示信息,所述提示信息用于提示用户该接口函数存在异常参数。
14.如权利要求8所述的方法,所述方法还包括:
接收所述切面程序发送的心跳信号;
若根据所述心跳信号确定所述应用服务器正常,且未接收到所述切面程序发送的传入数据,将所述应用服务器中的接口函数,作为识别出的异常接口函数,并发送提示信息,所述提示信息用于提示用户存在异常接口函数。
15.一种接口资源识别装置,所述装置应用于切面服务器,应用服务器具有接口函数和指定函数,所述接口函数被调用时,向所述指定函数传输传入数据,所述装置包括:
切面程序确定模块,用于确定切面程序和所述切面程序对应的切点;
部署模块,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,其中,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括解析、解密中的至少一种;
拦截模块,用于通过所述切面程序,拦截所述指定函数向所述接口函数返回的返回数据,其中,所述返回数据为所述指定函数对所述传入数据执行所述指定操作后向所述接口函数返回的;
检测模块,用于接收所述切面程序发送的返回数据;
统计模块,用于根据所述返回数据,统计所述接口函数对应的属性信息,作为识别出的接口资源,其中,针对每个接口函数,该接口函数的属性信息包括该接口函数的数据访问量、访问参数以及传输的数据类型。
16.一种接口资源识别装置,所述装置应用于切面服务器,应用服务器具有接口函数、指定函数和应用程序,所述接口函数被调用时,通过所述应用程序进行业务处理,并将经过业务处理后得到的传入数据传输给所述指定函数,所述装置包括:
切面程序确定模块,用于确定切面程序和所述切面程序对应的切点;
部署模块,用于通过预先部署的切面底座,在所述指定函数的切点处,部署所述切面程序,当所述指定函数接收到所述接口函数传输的传入数据时,执行指定操作,所述指定操作包括加密、封装中的至少一种;
拦截模块,用于通过所述切面程序,拦截所述接口函数向所述指定函数发送的传入数据;
检测模块,用于接收所述切面程序发送的传入数据;
统计模块,用于根据所述传入数据,统计所述接口函数对应的属性信息,作为识别出的接口资源,其中,针对每个接口函数,该接口函数的属性信息包括该接口函数的数据访问量、访问参数以及传输的数据类型。
17.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~14任一项所述的方法。
18.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述权利要求1~14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310163110.9A CN115904365B (zh) | 2023-02-14 | 2023-02-14 | 一种接口资源识别方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310163110.9A CN115904365B (zh) | 2023-02-14 | 2023-02-14 | 一种接口资源识别方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904365A CN115904365A (zh) | 2023-04-04 |
CN115904365B true CN115904365B (zh) | 2023-05-23 |
Family
ID=85737496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310163110.9A Active CN115904365B (zh) | 2023-02-14 | 2023-02-14 | 一种接口资源识别方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904365B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185534A (zh) * | 2022-07-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 一种数据脱敏方法、装置、可读存储介质以及电子设备 |
CN115248737A (zh) * | 2022-08-02 | 2022-10-28 | 中国银行股份有限公司 | 一种面向切面编程的接口调用耗时计算方法及装置 |
CN115374481A (zh) * | 2022-10-19 | 2022-11-22 | 支付宝(杭州)信息技术有限公司 | 数据脱敏处理的方法、装置、存储介质及电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7986821B2 (en) * | 2006-08-15 | 2011-07-26 | General Electric Company | Processes and apparatus for imaging protocols and analysis |
CN115185605A (zh) * | 2022-07-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 一种业务执行方法、装置、存储介质及电子设备 |
CN115185777A (zh) * | 2022-07-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 一种异常检测方法、装置、可读存储介质以及电子设备 |
CN115495777A (zh) * | 2022-09-08 | 2022-12-20 | 支付宝(杭州)信息技术有限公司 | 一种数据保护方法、装置、存储介质及电子设备 |
CN115495343A (zh) * | 2022-09-08 | 2022-12-20 | 支付宝(杭州)信息技术有限公司 | 一种安全维护方法、装置、存储介质及电子设备 |
CN115357940A (zh) * | 2022-10-19 | 2022-11-18 | 支付宝(杭州)信息技术有限公司 | 一种数据处理的方法、装置、存储介质及电子设备 |
-
2023
- 2023-02-14 CN CN202310163110.9A patent/CN115904365B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115185534A (zh) * | 2022-07-18 | 2022-10-14 | 支付宝(杭州)信息技术有限公司 | 一种数据脱敏方法、装置、可读存储介质以及电子设备 |
CN115248737A (zh) * | 2022-08-02 | 2022-10-28 | 中国银行股份有限公司 | 一种面向切面编程的接口调用耗时计算方法及装置 |
CN115374481A (zh) * | 2022-10-19 | 2022-11-22 | 支付宝(杭州)信息技术有限公司 | 数据脱敏处理的方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115904365A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755530B2 (en) | Method and system for applying data retention policies in a computing platform | |
US11874755B2 (en) | Systems, methods, and computer-readable media for analyzing intercepted telemetry events | |
CN115378735B (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN115185534A (zh) | 一种数据脱敏方法、装置、可读存储介质以及电子设备 | |
US12111743B2 (en) | Systems, methods, and computer-readable media for analyzing intercepted telemetry events to generate vulnerability reports | |
CN115277142A (zh) | 一种安全防护方法、装置、存储介质及电子设备 | |
CN115185777A (zh) | 一种异常检测方法、装置、可读存储介质以及电子设备 | |
CN110602212A (zh) | 应用服务管理方法、装置及存储介质 | |
CN115374481B (zh) | 数据脱敏处理的方法、装置、存储介质及电子设备 | |
CN115904365B (zh) | 一种接口资源识别方法、装置、设备及可读存储介质 | |
CN115186269A (zh) | 一种漏洞挖掘方法、装置、存储介质及电子设备 | |
CN115185755A (zh) | 一种异常检测方法、装置、存储介质及电子设备 | |
WO2024164742A1 (zh) | 一种云存储数据的加密和解密的方法、装置、介质及设备 | |
WO2024164707A1 (zh) | 一种数据脱敏方法、装置、设备及可读存储介质 | |
CN115495343A (zh) | 一种安全维护方法、装置、存储介质及电子设备 | |
CN115495777A (zh) | 一种数据保护方法、装置、存储介质及电子设备 | |
Kalkov et al. | Explicit prioritization of parallel Intent broadcasts in real‐time Android | |
CN115828247B (zh) | 一种小程序的异常检测方法、装置、设备及可读存储介质 | |
CN115828195B (zh) | 一种水印嵌入方法、装置、存储介质及电子设备 | |
US12015713B1 (en) | Artificial intelligence protocols for enhancing token holder autonomy | |
CN116383823A (zh) | 一种漏洞检测的方法、装置、存储介质及电子设备 | |
Marono | Quantifying Privacy of Mobile Applications | |
US20240303172A1 (en) | Systems, methods, and computer-readable media for analyzing intercepted telemetry events to generate drift reports | |
US20230376632A1 (en) | Protecting confidential information in online applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |