CN104639650B - 一种细粒度分布式接口访问控制方法及装置 - Google Patents
一种细粒度分布式接口访问控制方法及装置 Download PDFInfo
- Publication number
- CN104639650B CN104639650B CN201510089591.9A CN201510089591A CN104639650B CN 104639650 B CN104639650 B CN 104639650B CN 201510089591 A CN201510089591 A CN 201510089591A CN 104639650 B CN104639650 B CN 104639650B
- Authority
- CN
- China
- Prior art keywords
- user
- access
- interface
- request
- time interval
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供一种细粒度分布式接口访问控制方法及装置,本发明从用户组及单个用户两个级别上,使用访问间隔时间及访问频率两种控制方式,结合用户身份认证及安全地址列表多种安全机制,通过可动态更新的控制参数,实现动态的细粒度的分布式接口访问控制,从而增强了分布式接口的安全性,减轻了分布式接口服务器的负载,提高了系统安全控制的灵活性。
Description
技术领域
本发明涉及有线及无线通信技术领域,尤其涉及一种细粒度分布式接口访问控制方法及装置。
背景技术
随着Internet互联网和分布式计算技术的飞速发展和普遍应用,出现了越来越多的分布式应用系统。这些应用系统之间的协同通信也变的非常普遍,随着应用系统规模变得越来越大,各个系统之间的访问也变得越来越频繁。
万维网WEB服务是一种崭新的分布式接口技术,基于一系列开放的标准协议,其松散耦合性、平台和语言无关性以及开放性使得它成为现在企业级应用系统流行的服务框架。但是由于网络的开放性使得WEB服务非常易于受到安全方面的威胁,因此防止WEB服务被非法地访问以及恶意的调用的需求变的非常迫切和重要。
发明内容
有鉴于此,为防止分布式接口的非法访问以及恶意调用,本发明提出了一种细粒度分布式接口访问控制方法及装置。
具体地,本发明是通过如下技术方案实现的:
基于本发明实施例的一方面,本发明提供一种细粒度分布式接口访问控制方法,所述方法包括:
接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则拦截本次接口访问请求;
接收到用户发送的接口访问请求后,判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则拦截本次接口访问请求,
当两次接口访问请求的时间间隔不小于预设的访问间隔时间阈值且在预设的周期内与该用户相关的接口访问次数配额未使用完时,对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行周期内与该用户相关的接口访问次数配额记录值的递减操作。
进一步地,所述的访问间隔时间阈值包括用户组访问间隔时间阈值和单用户访问间隔时间阈值;
所述判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值的步骤具体为:
判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔时间阈值,若小于则拦截本次接口访问请求。
进一步地,所述与用户相关的接口访问次数配额包括:用户组访问次数配额和单用户访问次数配额;
所述判断在预设的周期内与该用户相关的接口访问次数配额是否使用完的步骤具体为:
判断在当前周期内用户组访问次数配额是否用完,若用完则拦截本次接口访问请求;
判断在当前周期内单用户访问次数配额是否用完,若用完则拦截本次接口访问请求。
进一步地,在执行所述判断步骤之前,所述方法还包括:
在接收到用户发送的接口访问请求时,从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,若未通过用户身份认证,则拦截本次接口访问请求;和/或
在接收到用户发送的接口访问请求时,根据预设的安全地址列表判断请求报文的源地址是否为所述安全地址列表中的地址,若不在所述安全地址列表内,则拦截本次接口访问请求。
进一步地,在多核并行对同一分布式接口进行访问控制的场景下,在内存中分别为所述访问间隔时间阈值及所述的与该用户相关的接口访问次数配额定义实体类,所述实体类包含第一属性及第二属性;
所述为与该用户相关的接口访问次数配额定义的实体类的第一属性用于存放用户当前剩余的访问次数配额值,第二属性用于存放系统中预设的访问次数配额,所述第一属性使用线程安全的原子类型作为数据类型,并通过定时器定时将第一属性的值置为第二属性的值;
所述为访问间隔时间阈值定义的实体类的第一属性第一属性使用线程安全的原子类型作为数据类型,用于存放用户前一次接口访问请求的时间戳,第二属性用于存放系统中预设的访问间隔时间阈值。
基于本发明实施例的另一方面,本发明提供一种细粒度分布式接口访问控制装置,该装置包括:
第一访问控制模块,用于在接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二访问控制模块,用于在接收到用户发送的接口访问请求后,判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则拦截本次接口访问请求;
处理模块,用于当两次接口访问请求的时间间隔不小于预设的访问间隔时间阈值且在预设的周期内与该用户相关的接口访问次数配额未使用完时,对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行周期内与该用户相关的接口访问次数配额记录值的递减操作。
进一步地,所述的访问间隔时间阈值包括用户组访问间隔时间阈值和单用户访问间隔时间阈值;
所述第一访问控制模块进一步包括:
第一控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔阈值,若小于则拦截本次接口访问请求。
进一步地,所述与用户相关的接口访问次数配额包括:用户组访问次数配额和单用户访问次数配额;
所述第二访问控制模块进一步包括:
第三控制子单元,判断在当前周期内用户组访问次数配额是否用完,若用完则拦截本次接口访问请求;
第四控制子单元,判断在当前周期内单用户访问次数配额是否用完,若用完则拦截本次接口访问请求。
进一步地,所述装置还包括:
认证模块,用于在接收到用户发送的接口访问请求时,从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,若未通过用户身份认证,则拦截本次接口访问请求;和/或
安全列表模块,用于在接收到用户发送的接口访问请求时,根据预设的安全地址列表判断请求报文的源地址是否为所述安全地址列表中的地址,若不在所述安全地址列表内,则拦截本次接口访问请求。
进一步地,在多核并行对同一分布式接口进行访问控制的场景下,所述第一访问控制模块在内存中为所述预设的访问间隔时间阈值定义第一实体类,所述第二访问控制模块在内存中为所述与该用户相关的接口访问次数配额定义第二实体类;
所述第一实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户前一次接口访问请求的时间戳,第二属性用于存放系统中预设的访问间隔时间阈值;
所述第二实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户当前剩余的访问次数配额值,第二属性用于存放系统中预设的访问次数配额,并通过定时器定时将第一属性的值置为第二属性的值。
本发明从用户组及用户两个级别上,使用访问间隔时间及访问频率两种控制方式,结合用户身份认证及安全地址列表多种安全机制,通过可动态更新的控制参数,实现动态的细粒度的分布式接口访问控制,从而增强了分布式接口的安全性,减轻了分布式接口服务器的负载,多种可配置的接口访问控制方式的提高了系统安全控制的灵活性。
附图说明
图1为本发明一实施例提供的细粒度分布式接口访问控制方法步骤流程;
图2为本发明一实施例提供的细粒度分布式接口访问控制装置所处设备的结构示意图。
具体实施方式
为了满足开放、融合的需求,现有的WEB服务平台通常会向第三方软件平台开放分布式标准协议接口,大型的应用系统的不同业务子系统之间也需要频繁的通过内部的WEB接口进行业务数据的共享交互,然而接口的开放意味着WEB服务更容易受到安全方面的威胁。为了防止Web服务被非法地访问以及恶意的调用,会对访问的用户进行用户认证,以及针对访问者的源地址进行防Dos攻击处理,然而,这些解决手段都是粗粒度的防范控制手段,不能对不同用户的访问行为进行细粒度的控制,特殊情况下,例如对于通过认证的“恶意”用户不能进行有效的防范。
为了解决这样的问题,本发明提出了一种细粒度分布式接口访问控制方法,该方法通过访问间隔时间、周期内访问次数、安全地址列表等多种手段,基于用户组及用户两个层次对用户的分布式接口访问请求进行控制,以实现细粒度的分布式接口访问控制。
图1示例了采用本发明一实施例提供的细粒度分布式接口访问控制方法进行用户访问控制的步骤流程,在执行本发明提供的方法之前,需要首先在分布式接口所属的业务系统的数据库中设置用户及用户组的访问间隔时间阈值、周期内访问次数配额等配置参数,该实施例具体包括如下步骤:
步骤100、接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则执行步骤180,否则执行步骤120。
本发明实施例设置访问间隔时间阈值的目的是控制由同一用户发起的接口访问请求的频率,当接收到两次接口访问请求的时间间隔小于预设的访问间隔时间阈值时,则拦截后一次的访问请求,只有当相邻两次的接口访问请求发起间隔时间大于等于该阈值时,后一次的访问请求才被允许。管理人员可根据用户与接口之间交互的实际需求,接口的负载情况等因素对该预设参数进行调整。
为进一步保证安全性,本发明一实施例在执行该步骤之前,还包括对用户进行认证的步骤,即在接收到用户发送的接口访问请求时,首先从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,只有通过用户身份认证的接口访问请求才可以进一步执行后续步骤,未通过用户身份认证的接口访问请求会被拦截,并向用户返回认证失败信息。
为进一步保证安全性,本发明一实施例在执行该步骤之前,还结合安全地址列表对接口访问请求的源地址进行访问控制,当请求报文的源地址为安全地址列表中的地址时直接放行,若不在安全地址列表内,则执行后续步骤,对接口访问请求进行访问控制。
为了从更细的粒度上对接口访问请求进行控制,本发明一具体实施例将所述访问间隔时间阈值进一步分为用户组访问间隔时间阈值和单用户访问间隔时间阈值,并分成两级进行判断,首先判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若不小于再判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔时间阈值,若不小于则执行后续控制步骤,若两次请求的间隔时间小于用户组访问间隔时间阈值或小于用户访问间隔时间阈值,则拦截后一次的接口访问请求。
通过上述的两级访问间隔时间阈值的判断步骤,可以实现针对用户组及用户的细粒度的接口访问控制,使接口访问控制可以精确到用户组和单个的用户,例如,创建用户的时,可将用户分配到指定的用户组,并针对用户组设定接口访问间隔时间阈值,用户默认自动继承用户组的接口访问控制策略,若未设定针对单用户的访问间隔时间阈值,则只需要执行针对用户组的访问间隔时间阈值的控制策略,若设定了针对单用户的访问间隔时间阈值,则需要执行针对用户组及针对单用户的两级访问间隔时间阈值的控制策略。
步骤120、判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则执行步骤180,若未使用完则执行步骤130;
本发明实施例设置与用户相关的接口访问次数配额的目的是控制预设周期时间内与同一用户相关的接口访问次数,当在当前的周期内与同一用户相关的接口访问次数配额被用完后,则该周期内剩余时间内接收到的接口访问请求将被拦截。通过周期内次数配额控制可以防止接口受到饱和攻击。
为了更进一步,从更细的粒度上对接口访问请求进行控制,本发明一具体实施例将所述与用户相关的接口访问次数配额分为用户组访问次数配额和单用户访问次数配额,并分成两级进行判断。首先判断在当前周期内用户组访问次数配额是否用完,若未用完再判断在当前周期内单用户访问次数配额是否用完,当用户组访问次数配额或单用户访问次数配额用完时,拦截本次接口访问请求。用户组访问次数配额是指预设周期内发送接口访问请求的用户所属用户组的接口访问次数配额,单用户访问次数配额指预设周期内针对单个用户设置的接口访问次数配额。通过用户组访问次数配额可实现对一组用户进行周期内访问次数的控制,通过单用户访问次数配额可实现对单个用户进行周期内访问次数的控制。
本发明一具体实施例中,通过设定定时器的方式在每个用户组和每个用户的周期时间到时,根据相应预设的访问次数配额重置用户组访问次数配额及单用户访问次数配额。
步骤130、对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行与该用户相关的接口访问次数配额的递减操作,对接口的访问控制流程结束。
步骤180、拦截该用户本次对接口的访问请求,向发送接口访问请求的用户反馈错误提示消息,并在返回消息头和消息体中给出相应的错误码和错误提示信息,对接口的访问控制流程结束。
本发明一具体实施例中,访问间隔时间阈值及访问次数配额存放于数据库中,可通过数据库接口即时更改用户和用户组的访问间隔时间阈值及访问次数配额。考虑到实际应用时会出现大量用户并发访问的场景,如果在执行访问控制操作时从数据库中获取阈值信息会对数据库造成较大的压力,因此在启动包含分布式接口的WEB服务时,首先从数据库中获取所有用户和用户组的访问间隔时间阈值及访问次数配额,并将这部分信息以集合的形式存放到WEB服务器的内存缓存中,在执行访问控制时从缓存中获取用户和用户组对应阈值及配额信息。
本发明一具体实施例中,在启动WEB服务时,产生一个或多个定时器守护线程,通过定时器线程定时重置各用户和用户组对应的访问间隔时间阈值及访问次数配额,以实现预设的配置参数的动态更新,以及一定时间段内访问次数的控制。
需要说明的是,上述对接口访问间隔时间的控制步骤及对周期内接口访问次数配额的控制步骤虽然在本实施例中有先后关系,但在实际应用时可根据需要设定先后关系,同理,对用户组和单用户的接口访问间隔时间的控制步骤,以及对用户组和单用户的访问次数配额的控制步骤都是并列的关系,本发明不限制上述控制步骤的先后顺序关系。另外,在本发明一具体实施例中,针对用户组及单用户的访问间隔时间及访问次数配额的四级接口访问控制可以按需定制,可包含其中一级或多级,拦截的顺序也可自由切换。
针对多核并行进行访问控制处理的场景下,需要解决多个并发进程或并发线程对同一用户的访问间隔时间阈值及访问次数配额等配置参数的并发访问和处理的问题,在本发明一具体实施例中,以单用户访问次数配额参数为例,说明该实施例的处理方法:
针对单用户访问次数配额参数定义实体类A,用于存放该用户当前剩余的访问次数配额和预设的该用户对应的单用户访问次数配额,该实体类A包含两个属性A1和A2。
属性A1用于存放该用户剩余访问次数配额,该属性使用线程安全的原子类型作为数据类型(如Java中AtomicLong),以解决多点使用同一用户账号并发访问同步问题。原子类型能充分发挥代码的快速和高并发的特点,提供了比较并交换(Compare And Swap,CAS)的方式,允许无堵塞多线程数据处理能以一种安全有效方式实现。从性能上比较,比使用同步锁的方式要更加快捷与高效。
属性A2用于存放预设的该用户对应的单用户访问次数配额参数,该参数可通过定时器周期性从数据库读取,并通过定时器守护线程定时将属性A1的值置为属性A2的值。
对于用户组访问次数配额等参数可采用同上述实体类A相同的处理办法,以解决同一用户账号并发访问同步问题。
在本发明另一具体实施例中,针对访问间隔时间阈值定义实体类B,实体类B的第一属性B1用于存放用户前一次接口访问请求的时间戳且该第一属性使用线程安全的原子类型作为数据类型,第二属性B2用于存放系统中预设的访问间隔时间阈值且第二属性可通过定时器周期性从数据库读取系统预设的属性值并更新该第二属性值。
在本发明一具体实施例中,定义集合U,用于存放上述实体类。该集合实现了Map接口,并在此基础之上增加了读写锁以适应多并发同步场景。
本发明的又一实施例提供一种细粒度分布式接口访问控制装置200,该装置可单独设置于分布式接口所在服务器之前的控制设备上,也可以与分布式接口设置于同一服务器,该装置所处设备的硬件环境通常至少包括有CPU、内存以及非易失性存储器,当然还可能包括各种转发芯片、I/O接口等硬件。请参考图2,以软件实现为例,本实施例通过该设备的CPU将非易失性存储器中存储的用于完成上述方法步骤功能的计算机程序指令读取到内存中运行,使所述设备或服务器包括有:第一访问控制模块210、第二访问控制模块220、处理模块230。在本发明的一种实施方式中:
第一访问控制模块210,用于在接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二访问控制模块220,用于在接收到用户发送的接口访问请求后,判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则拦截本次接口访问请求;
处理模块230,用于当两次接口访问请求的时间间隔不小于预设的访问间隔时间阈值且在预设的周期内与该用户相关的接口访问次数配额未使用完时,对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行周期内与该用户相关的接口访问次数配额记录值的递减操作。
为从更细粒度上对分布式接口访问请求进行控制,本发明一实施例中,所述的访问间隔时间阈值包括:用户组访问间隔时间阈值和单用户访问间隔时间阈值。第一访问控制模块210进一步包括:
第一控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔时间阈值,若小于则拦截本次接口访问请求。
为从更细粒度上对分布式接口访问请求进行控制,本发明一实施例中,所述与用户相关的接口访问次数配额包括:用户组访问次数配额和单用户访问次数配额。所述第二访问控制模块220进一步包括:
第三控制子单元,判断在当前周期内用户组访问次数配额是否用完,若用完则拦截本次接口访问请求;
第四控制子单元,判断在当前周期内单用户访问次数配额是否用完,若用完则拦截本次接口访问请求。
为了增强分布式访问接口的安全性,本发明一实施例中,该装置还包括:
认证模块,用于在接收到用户发送的接口访问请求时,从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,若未通过用户身份认证,则拦截本次接口访问请求;和/或
安全列表模块,用于在接收到用户发送的接口访问请求时,根据预设的安全地址列表判断请求报文的源地址是否为所述安全地址列表中的地址,若不在所述安全地址列表内,则拦截本次接口访问请求。
本发明另一具体实施例中,在多核并行对同一分布式接口访问控制处理的场景下,所述第一访问控制模块在内存中为所述预设的访问间隔时间阈值定义第一实体类,所述第二访问控制模块在内存中为所述与该用户相关的接口访问次数配额参数定义第二实体类;
第一实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户前一次接口访问请求的时间戳,第二属性用于存放系统中预设的访问间隔时间阈值;
第二实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户当前剩余的访问次数配额值,第二属性用于存放系统中预设的访问次数配额,并通过定时器定时将第一属性的值置为第二属性的值。
所述第一实体类及第二实体类均包含第一属性及第二属性,第一属性用于存放当前使用的参数值,第二属性用于存放系统中预设的参数值,所述第一属性使用线程安全的原子类型作为数据类型,并通过定时器定时将第一属性的值置为第二属性的值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种细粒度分布式接口访问控制方法,其特征在于,所述方法包括:
接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则拦截本次接口访问请求;
接收到用户发送的接口访问请求后,判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则拦截本次接口访问请求,
当两次接口访问请求的时间间隔不小于预设的访问间隔时间阈值且在预设的周期内与该用户相关的接口访问次数配额未使用完时,对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行周期内与该用户相关的接口访问次数配额记录值的递减操作;
其中,所述判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值的步骤具体为:
若所述的访问间隔时间阈值包括用户组访问间隔时间阈值,判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
若所述的访问间隔时间阈值包括用户组访问间隔时间阈值和单用户访问间隔时间阈值,判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔时间阈值,若小于则拦截本次接口访问请求。
2.根据权利要求1所述的方法,其特征在于,所述与用户相关的接口访问次数配额包括:用户组访问次数配额和单用户访问次数配额;
所述判断在预设的周期内与该用户相关的接口访问次数配额是否使用完的步骤具体为:
判断在当前周期内用户组访问次数配额是否用完,若用完则拦截本次接口访问请求;
判断在当前周期内单用户访问次数配额是否用完,若用完则拦截本次接口访问请求。
3.根据权利要求1所述的方法,其特征在于,在执行所述判断步骤之前,所述方法还包括:
在接收到用户发送的接口访问请求时,从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,若未通过用户身份认证,则拦截本次接口访问请求;和/或
在接收到用户发送的接口访问请求时,根据预设的安全地址列表判断请求报文的源地址是否为所述安全地址列表中的地址,若不在所述安全地址列表内,则拦截本次接口访问请求。
4.根据权利要求1所述的方法,其特征在于,在多核并行对同一分布式接口进行访问控制的场景下,在内存中分别为所述访问间隔时间阈值及所述的与该用户相关的接口访问次数配额定义实体类,所述实体类包含第一属性及第二属性;
所述为与该用户相关的接口访问次数配额定义的实体类的第一属性用于存放用户当前剩余的访问次数配额值,第二属性用于存放系统中预设的访问次数配额,所述第一属性使用线程安全的原子类型作为数据类型,并通过定时器定时将第一属性的值置为第二属性的值;
所述为访问间隔时间阈值定义的实体类的第一属性第一属性使用线程安全的原子类型作为数据类型,用于存放用户前一次接口访问请求的时间戳,第二属性用于存放系统中预设的访问间隔时间阈值。
5.一种细粒度分布式接口访问控制装置,其特征在于,该装置包括:
第一访问控制模块,用于在接收到用户发送的接口访问请求后,判断该用户的本次接口访问请求与前一次接口访问请求的时间间隔是否小于预设的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二访问控制模块,用于在接收到用户发送的接口访问请求后,判断在预设的周期内与该用户相关的接口访问次数配额是否使用完,若使用完则拦截本次接口访问请求;
处理模块,用于当两次接口访问请求的时间间隔不小于预设的访问间隔时间阈值且在预设的周期内与该用户相关的接口访问次数配额未使用完时,对该接口访问请求进行处理,记录接收到该用户本次接口访问请求的时间戳,执行周期内与该用户相关的接口访问次数配额记录值的递减操作;
若所述的访问间隔时间阈值包括用户组访问间隔时间阈值,所述第一访问控制模块,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
若所述的访问间隔时间阈值包括用户组访问间隔时间阈值和单用户访问间隔时间阈值,所述第一访问控制模块进一步包括:
第一控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户所属用户组的访问间隔时间阈值,若小于则拦截本次接口访问请求;
第二控制子单元,用于判断该用户本次请求与前一次的请求的时间间隔是否小于该用户对应的单用户访问间隔阈值,若小于则拦截本次接口访问请求。
6.根据权利要求5所述的装置,其特征在于,所述与用户相关的接口访问次数配额包括:用户组访问次数配额和单用户访问次数配额;
所述第二访问控制模块进一步包括:
第三控制子单元,判断在当前周期内用户组访问次数配额是否用完,若用完则拦截本次接口访问请求;
第四控制子单元,判断在当前周期内单用户访问次数配额是否用完,若用完则拦截本次接口访问请求。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
认证模块,用于在接收到用户发送的接口访问请求时,从请求中获取用于用户身份认证的信息,对用户身份进行合法性验证,若未通过用户身份认证,则拦截本次接口访问请求;和/或
安全列表模块,用于在接收到用户发送的接口访问请求时,根据预设的安全地址列表判断请求报文的源地址是否为所述安全地址列表中的地址,若不在所述安全地址列表内,则拦截本次接口访问请求。
8.根据权利要求5所述的装置,其特征在于,在多核并行对同一分布式接口进行访问控制的场景下,所述第一访问控制模块在内存中为所述预设的访问间隔时间阈值定义第一实体类,所述第二访问控制模块在内存中为所述与该用户相关的接口访问次数配额定义第二实体类;
所述第一实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户前一次接口访问请求的时间戳,第二属性用于存放系统中预设的访问间隔时间阈值;
所述第二实体类的第一属性使用线程安全的原子类型作为数据类型,用于存放该用户当前剩余的访问次数配额值,第二属性用于存放系统中预设的访问次数配额,并通过定时器定时将第一属性的值置为第二属性的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510089591.9A CN104639650B (zh) | 2015-02-27 | 2015-02-27 | 一种细粒度分布式接口访问控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510089591.9A CN104639650B (zh) | 2015-02-27 | 2015-02-27 | 一种细粒度分布式接口访问控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104639650A CN104639650A (zh) | 2015-05-20 |
CN104639650B true CN104639650B (zh) | 2018-07-31 |
Family
ID=53217951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510089591.9A Active CN104639650B (zh) | 2015-02-27 | 2015-02-27 | 一种细粒度分布式接口访问控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104639650B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187449B (zh) * | 2015-09-30 | 2018-10-02 | 北京恒华伟业科技股份有限公司 | 一种接口调用方法及装置 |
CN105635124B (zh) * | 2015-12-24 | 2019-05-14 | 小米科技有限责任公司 | 流量控制方法和装置 |
CN107454087A (zh) * | 2017-08-10 | 2017-12-08 | 中国民航信息网络股份有限公司 | 在线分销接口平台系统 |
CN107704765A (zh) * | 2017-08-28 | 2018-02-16 | 深圳市诚壹科技有限公司 | 一种接口访问方法、服务器及计算机可读存储介质 |
CN109962855A (zh) * | 2017-12-14 | 2019-07-02 | 深圳市融汇通金科技有限公司 | 一种web服务器的限流方法、限流装置及终端设备 |
CN109660563A (zh) * | 2019-02-02 | 2019-04-19 | 北京奇安信科技有限公司 | 一种应用访问控制方法、系统和介质 |
CN109600399A (zh) * | 2019-02-02 | 2019-04-09 | 北京奇安信科技有限公司 | Api访问控制方法及api访问代理装置 |
CN109921935A (zh) * | 2019-03-12 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于发送信息的方法和装置 |
CN110278199A (zh) * | 2019-06-05 | 2019-09-24 | 四川驹马科技有限公司 | 一种接口请求频率控制方法 |
CN111224939B (zh) * | 2019-11-15 | 2022-07-12 | 上海钧正网络科技有限公司 | 任务请求的拦截方法、装置、计算机设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929477A (zh) * | 2005-09-08 | 2007-03-14 | 中兴通讯股份有限公司 | 一种对组播业务有限制访问的控制系统及方法 |
CN103248472A (zh) * | 2013-04-16 | 2013-08-14 | 华为技术有限公司 | 一种处理操作请求的方法、系统以及攻击识别装置 |
-
2015
- 2015-02-27 CN CN201510089591.9A patent/CN104639650B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929477A (zh) * | 2005-09-08 | 2007-03-14 | 中兴通讯股份有限公司 | 一种对组播业务有限制访问的控制系统及方法 |
CN103248472A (zh) * | 2013-04-16 | 2013-08-14 | 华为技术有限公司 | 一种处理操作请求的方法、系统以及攻击识别装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104639650A (zh) | 2015-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104639650B (zh) | 一种细粒度分布式接口访问控制方法及装置 | |
JP7111814B2 (ja) | 資産管理方法および装置ならびに電子デバイス | |
CN111131242B (zh) | 一种权限控制方法、装置和系统 | |
CN112840326B (zh) | 用于自动化操作管理的测试引擎 | |
EP3516513B1 (en) | Application token through associated container | |
CN107196951B (zh) | 一种hdfs系统防火墙的实现方法和防火墙系统 | |
JP2021512380A (ja) | 資産管理方法および装置、ならびに電子デバイス | |
CN110069941A (zh) | 一种接口访问鉴权方法、装置及计算机可读介质 | |
CN110032571A (zh) | 业务流程处理方法、装置、存储介质及计算设备 | |
US8417964B2 (en) | Software module management device and program | |
US20190342143A1 (en) | Autonomous management of resources by an administrative node network | |
US11025415B2 (en) | Cryptographic operation method, method for creating working key, cryptographic service platform, and cryptographic service device | |
EP3120290A1 (en) | Techniques to provide network security through just-in-time provisioned accounts | |
JP6940240B2 (ja) | 証明書取得方法、認証方法及びネットワークデバイス | |
US10146931B1 (en) | Organization-level password management employing user-device password vault | |
CN108259502A (zh) | 用于获取接口访问权限的鉴定方法、服务端及存储介质 | |
US9049596B1 (en) | Prevention of fraud in mobile SIM reissuing via knowledge based authentication | |
JP2002073196A (ja) | 共有アクセス管理機能を備えた携帯可能な情報処理装置 | |
CN112948842A (zh) | 一种鉴权方法及相关设备 | |
CN110086813A (zh) | 访问权限控制方法和装置 | |
CN112651001A (zh) | 访问请求的鉴权方法、装置、设备及可读存储介质 | |
KR20160018554A (ko) | 신뢰 및 비신뢰 플랫폼에 걸쳐 인터넷 액세스가능 애플리케이션 상태를 로밍하는 기법 | |
CN110445765A (zh) | 基于区块链的数据共享方法、终端设备及介质 | |
CN115242546A (zh) | 一种基于零信任架构的工业控制系统访问控制方法 | |
CN107846676A (zh) | 基于网络切片安全架构的安全通信方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |