一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

接口访问控制方法、装置、电子设备和存储介质与流程

2022-06-09 00:14:27 来源:中国专利 TAG:


1.本发明涉及网关技术领域,尤其是涉及一种接口访问控制方法、装置、电子设备和存储介质。


背景技术:

2.随着java技术的发展与运用,涌现出一批优秀的java技术框架,像struts、spring、hibernate、play、jhipster、blade、mybatis等,例如针对在java运用中出现的问题,开发人员在不断的摸索与解决的过程中,形成一套大大缩短开发周期、减轻代码配置、释放程序员能力的解决方案:springcloud。springcloud这类系统开发工具包的引入与使用,对企业的项目投入降低了成本,对开发人员的技术降低了要求。
3.springcloud等解决方案通常提供一个网关服务,主要作用是负责处理前端访问接口的转发服务,所需要处理的转发操作和信息量较大,各个业务服务的处理压力也较大,且存在一定的网络恶意攻击风险。


技术实现要素:

4.本技术提供了一种接口访问控制方法、装置、电子设备和存储介质。
5.第一方面,提供了一种接口访问控制方法,包括:
6.在检测到接口访问请求的情况下,校验所述接口访问请求的访问路径的合法性;
7.若所述访问路径合法,根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性;
8.若所述接口访问请求的请求参数合法,转发所述接口访问请求。
9.在一种可选的实施方式中,在检测到所述接口访问请求的情况下,在校验所述接口访问请求的访问路径的合法性之前,所述方法还包括:
10.查询缓存中是否记录所述接口访问请求对应的访问ip地址为黑名单;
11.若否,触发所述校验所述接口访问请求的访问路径的合法性的步骤;
12.若是,拦截所述接口访问请求。
13.在一种可选的实施方式中,所述方法还包括:
14.若所述访问路径不合法,记录所述接口访问请求对应的访问ip地址至所述缓存中,并拦截所述接口访问请求。
15.在一种可选的实施方式中,所述方法还包括:
16.若所述接口访问请求的请求参数不合法,记录所述接口访问请求对应的访问ip地址至所述缓存中,并拦截所述接口访问请求。
17.在一种可选的实施方式中,所述方法还包括:
18.若检测到同一访问ip地址或同一请求参数的重复接口访问请求在预设时长内的请求访问次数达到预设次数,记录所述重复接口访问请求的访问ip地址至所述缓存中,并拦截所述重复接口访问请求。
19.在一种可选的实施方式中,所述方法还包括:
20.屏蔽各个业务服务对外端口,以阻断公网直接访问业务服务接口。
21.在一种可选的实施方式中,所述方法还包括:
22.在网关服务中创建一个全局过滤器,写入预设filter业务处理逻辑;所述预设filter业务处理逻辑用于,所述校验所述接口访问请求的访问路径的合法性,以及所述根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性。
23.第二方面,提供了一种接口访问控制装置,包括:
24.校验模块,用于在检测到接口访问请求的情况下,校验所述接口访问请求的访问路径的合法性;
25.所述校验模块还用于,若所述访问路径合法,根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性;
26.转发模块,用于若所述接口访问请求的请求参数合法,转发所述接口访问请求。
27.第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如第一方面及其任一种可能的实现方式的步骤。
28.第四方面,提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如上述第一方面及其任一种可能的实现方式的步骤。
29.本技术实施例通过在检测到接口访问请求的情况下,校验所述接口访问请求的访问路径的合法性;若所述访问路径合法,根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性;若所述接口访问请求的请求参数合法,转发所述接口访问请求;可以在转发接口访问请求之前判断请求合法性,拦截恶意访问,减轻各个业务服务压力。
附图说明
30.为了更清楚地说明本技术实施例或背景技术中的技术方案,下面将对本技术实施例或背景技术中所需要使用的附图进行说明。
31.图1为本技术实施例提供的一种接口访问控制方法的流程示意图;
32.图2为本技术实施例提供的另一种接口访问控制方法的流程示意图;
33.图3为本技术实施例提供的又一种接口访问控制方法的流程示意图;
34.图4为本技术实施例提供的一种接口访问控制装置的结构示意图;
35.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
36.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图
在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
38.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
39.下面结合本技术实施例中的附图对本技术实施例进行描述。
40.请参阅图1,图1是本技术实施例提供的一种接口访问控制方法的流程示意图。该方法可包括:
41.101、在检测到接口访问请求的情况下,校验上述接口访问请求的访问路径的合法性。
42.本技术实施例的执行主体可以为一种接口访问控制装置,在实际应用中可以为一种电子设备,比如网关设备。可选的,本技术实施例中的方法可以应用于spring gateway。spring gateway是springcloud解决方案的一个网关服务,其最主要作用是负责处理前端访问接口的转发服务。
43.本技术实施例的接口访问控制方法在spring gateway网关服务,防止恶意访问业务api接口而导致系统崩溃。
44.具体的,接口访问控制接口装置可以接收接口访问请求,进行一系列校验。首先,可以校验接口访问请求的访问路径的合法性。对于访问路径的校验可以根据需要设置相应的校验规则并执行。
45.在一种可选的实施方式中,若上述访问路径不合法,记录上述接口访问请求对应的访问ip地址至上述缓存中,并拦截上述接口访问请求。
46.如果访问路径不合法,那么可以记录该请求的访问ip至redis缓存中,拦截该接口访问请求,并可以反馈信息表示对此请求不进行转发处理。
47.若访问路径合法,可以执行步骤102。
48.102、若上述访问路径合法,根据请求参数校验规则,校验上述接口访问请求的请求参数的合法性。
49.若确定接口访问请求的访问路径合法,则可以进一步验证请求参数。上述请求参数校验规则也可以根据需要进行设置,并依据该请求参数校验规则对待验证的请求参数进行校验。其中,上述请求参数可以是请求头参数。
50.在一种可选的实施方式中,若上述接口访问请求的请求参数不合法,记录上述接口访问请求对应的访问ip地址至上述缓存中,并拦截上述接口访问请求。
51.如果请求参数不合法,同样可以记录该请求的访问ip至redis缓存中,拦截该接口访问请求,并可以反馈信息表示对此请求不进行转发处理。
52.若请求参数合法,可以执行步骤103。
53.103、若上述接口访问请求的请求参数合法,转发上述接口访问请求。
54.在接口访问请求的访问路径和请求参数经验证均合法的情况下,可以转发本次接口访问请求。
55.本技术实施例通过在检测到接口访问请求的情况下,校验所述接口访问请求的访问路径的合法性;若所述访问路径合法,根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性;若所述接口访问请求的请求参数合法,转发所述接口访问请求;可以在转发接口访问请求之前判断请求合法性,拦截恶意访问,减轻各个业务服务压力。
56.请参阅图2,图2是本技术实施例提供的另一种接口访问控制方法的流程示意图。如图2所示,该方法具体包括:
57.201、屏蔽各个业务服务对外端口,以阻断公网直接访问业务服务接口。
58.具体的,可以设置屏蔽各个业务服务对外端口,从而阻断公网直接访问业务服务接口,即避免绕过网关的直接访问,提高网络安全性。
59.202、在网关服务中创建一个全局过滤器,写入预设filter业务处理逻辑;上述预设filter业务处理逻辑用于,校验接口访问请求的访问路径的合法性,以及根据请求参数校验规则,校验接口访问请求的请求参数的合法性。
60.具体的,可以在spring gateway服务中创建一个全局过滤器globalfilter,重写filter业务处理方法(业务处理逻辑),即可以根据需要设置请求校验规则,从而在应用中可以基于该filter业务处理逻辑执行接口访问请求的访问路径和请求参数的校验。
61.203、在检测到接口访问请求的情况下,查询缓存中是否记录上述接口访问请求对应的访问ip地址为黑名单。
62.具体的,本技术实施例中可以结合redis缓存进行鉴权,实现有效拦截恶意访问接口,防止访问崩溃问题。如果redis缓存中有记录本次请求的访问ip为黑名单,则可以执行步骤207,可以反馈信息表示对此请求不进行转发处理。如果redis缓存中没有记录本次请求的访问ip为黑名单,则可以继续后续验证过程,执行步骤204。
63.可选的,上述redis缓存中的记录可以在部分权限下进行修改,即享有相应黑名单管理权限的账户可以访问并修改redis缓存中的访问ip,比如将其中的某个ip移除黑名单,或者将某个指定ip加入黑名单,从而实现访问请求的限制。
64.在可选的实施方式中,历史接口访问请求可以全部进行记录,包括被拦截的请求和成功的请求,并按照需要的规则进行统计,向用户提供访问请求记录,了解访问请求情况。比如按照访问ip分类,记录在特定时间段内各个访问ip的请求,包括访问时间、请求参数等并统计访问次数。
65.可选的,用户还可以根据历史接口访问请求的记录和统计数据,设置访问ip的请求优先级,即在短时间(预设的一个较短时长t)内接收到接口访问请求(多个)时,可以根据请求优先级由高到低的顺序进行请求处理,比如访问ip-1的优先级高于访问ip-2的优先级,则在t=1s内收到访问ip-1的请求a和访问ip-2的请求b时,先处理请求a。
66.204、校验上述接口访问请求的访问路径的合法性。
67.其中,上述步骤204可以对应参考图1所示实施例中步骤101的具体描述,此处不再赘述。
68.205、若上述访问路径合法,根据请求参数校验规则,校验上述接口访问请求的请求参数的合法性。
69.其中,上述步骤205可以对应参考图1所示实施例中步骤102的具体描述,此处不再赘述。
70.206、若上述接口访问请求的请求参数合法,转发上述接口访问请求。
71.其中,上述步骤206可以对应参考图1所示实施例中步骤103的具体描述,此处不再赘述。
72.在一种可选的实施方式中,该方法还包括:
73.若检测到同一访问ip地址或同一请求参数的重复接口访问请求在预设时长内的请求访问次数达到预设次数,记录上述重复接口访问请求的访问ip地址至上述缓存中,并拦截上述重复接口访问请求。
74.其中,上述预设时长和预设次数可以根据需要进行设置。如果同一访问ip或同一请求参数在短时间内有频繁访问接口,则也可以拦截该重复接口访问请求,记录访问ip至redis缓存中,并反馈不进行请求转发处理。
75.此处的拦截指的是相同访问在预设时长内的请求访问次数达到预设次数之后,不再进行转发,而在此之前可以进行转发。通过上述方法可以减少重复的访问请求,或者避免恶意访问请求。
76.207、拦截上述接口访问请求。
77.图3为本技术实施例提供的另一种接口访问控制方法的流程示意图,如图3所示,接口访问请求可以携带访问ip、访问路径、访问参数(请求参数)和访问时间等信息;
78.在获得接口访问请求后,可以查询redis缓存中是否记录该请求的访问ip为黑名单,若是则不转发该请求,记录该访问ip至redis缓存(黑名单);
79.若该请求的访问ip不为黑名单,则判断访问路径是否合法;
80.若访问路径合法,则判断访问参数是否合法;若访问路径不合法,则不转发该请求,记录该访问ip至redis缓存(黑名单);
81.若访问参数合法,则判断是否属于同一访问ip或同一请求参数在短时间内频繁访问的情况;若否,执行请求转发;若是,则不转发该请求,记录该访问ip至redis缓存(黑名单)。
82.java程序对服务器性能要求比较高,所以搭建的环境需要考虑网络恶意攻击,还需要开放人员考虑人为的恶意攻击结合缓存技术。本技术实施例中的接口访问控制方法,适用于处理前端访问接口的转发服务的网关(服务)。为了降低各个业务服务的处理压力,在做业务逻辑之前做一层鉴权,校验访问用户是否合法、校验访问参数是否合理等。实现有效拦截恶意访问接口,防止访问崩溃问题。
83.在实际应用中,本技术实施例中的接口访问控制方法,在spring gateway网关服务,结合redis缓存技术开发,结合业务逻辑代码,防止恶意访问业务api接口而导致系统奔溃。
84.基于上述接口访问控制方法实施例的描述,本技术实施例还公开了一种接口访问控制装置。请参见图4所示的一种接口访问控制装置的结构示意图,其中,接口访问控制装置400包括:
85.校验模块410,用于在检测到接口访问请求的情况下,校验上述接口访问请求的访问路径的合法性;
86.上述校验模块410还用于,若上述访问路径合法,根据请求参数校验规则,校验上述接口访问请求的请求参数的合法性;
87.转发模块420,用于若上述接口访问请求的请求参数合法,转发上述接口访问请求。
88.可选的,上述接口访问控制装置400还包括:缓存模块430,用于查询缓存中是否记录上述接口访问请求对应的访问ip地址为黑名单;
89.上述校验模块410还用于:若上述缓存中记录上述接口访问请求对应的访问ip地址为黑名单,校验上述接口访问请求的访问路径的合法性;
90.上述接口访问控制装置400还包括拦截模块440,用于若上述缓存中未记录上述接口访问请求对应的访问ip地址为黑名单,拦截上述接口访问请求。
91.可选的,上述缓存模块430还用于,若上述访问路径不合法,记录上述接口访问请求对应的访问ip地址至上述缓存中。
92.可选的,上述缓存模块430还用于,若上述接口访问请求的请求参数不合法,记录上述接口访问请求对应的访问ip地址至上述缓存中。
93.可选的,上述缓存模块430还用于,若检测到同一访问ip地址或同一请求参数的重复接口访问请求在预设时长内的请求访问次数达到预设次数,记录上述重复接口访问请求的访问ip地址至上述缓存中。
94.可选的,上述接口访问控制装置400还包括设置模块450,用于屏蔽各个业务服务对外端口,以阻断公网直接访问业务服务接口。
95.可选的,上述设置模块450还用于,在网关服务中创建一个全局过滤器,写入预设filter业务处理逻辑;上述预设filter业务处理逻辑用于,上述校验上述接口访问请求的访问路径的合法性,以及上述根据请求参数校验规则,校验上述接口访问请求的请求参数的合法性。
96.根据本技术的一个实施例,图1-图3所示任一方法中的各个步骤均可以是由图4所示的接口访问控制装置400中各个模块执行,此处不再赘述。
97.本技术实施例中的接口访问控制装置400,可以在检测到接口访问请求的情况下,校验所述接口访问请求的访问路径的合法性;若所述访问路径合法,根据请求参数校验规则,校验所述接口访问请求的请求参数的合法性;若所述接口访问请求的请求参数合法,转发所述接口访问请求;可以在转发接口访问请求之前判断请求合法性,拦截恶意访问,减轻各个业务服务压力。
98.基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种电子设备。请参见图5,该电子设备至少包括处理器501、非易失性存储介质502、内存储器503和网络接口504,其中,处理器501、非易失性存储介质502、内存储器503和网络接口504可通过系统总线505或其他方式连接,通过网络接口504可以与其他设备进行通信。该电子设备500可以为一种网关设备。
99.非易失性存储介质502即计算机存储介质可以存储在存储器中,上述计算机存储介质用于存储计算机程序,内存储器503也存储有计算机程序,上述计算机程序包括程序指令,上述处理器501(或称cpu(central processing unit,中央处理器))可用于执行上述程序指令。具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例上述的处理器501可以用于进行一系列的处理,包括如图1-图3所示实施例中任一方法的步骤等等。
100.本技术实施例还提供了一种计算机存储介质(memory),上述计算机存储介质是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括电子设备中的内置存储介质,当然也可以包括电子设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了电子设备的操作系统。并且,在该存储空间中还存放了适于被处理器501加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
101.在一个实施例中,可由处理器501加载并执行计算机存储介质中存放的一条或多条指令,以实现上述实施例中的相应步骤;具体实现中,计算机存储介质中的一条或多条指令可以由处理器501加载并执行图1-图3所示实施例中任一方法的任意步骤,此处不再赘述。
102.即在可选的实施方式中,上述电子设备可以是实体设备执行上述功能,接口访问控制装置也可以以软件形式如网关服务程序执行上述功能,本技术实施例对此不做限制。
103.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
104.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
105.作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
106.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-only memory,rom),或随机存储存储器,或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,dvd)、或者半导体介质,例如,固态硬盘(solid state disk,ssd)等。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献