CN112351082A - Http请求报文的限流方法及装置 - Google Patents
Http请求报文的限流方法及装置 Download PDFInfo
- Publication number
- CN112351082A CN112351082A CN202011167639.0A CN202011167639A CN112351082A CN 112351082 A CN112351082 A CN 112351082A CN 202011167639 A CN202011167639 A CN 202011167639A CN 112351082 A CN112351082 A CN 112351082A
- Authority
- CN
- China
- Prior art keywords
- speed limit
- characteristic
- http request
- speed
- request message
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种HTTP请求报文的限流方法及装置,涉及计算机技术领域。通过接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。以此可以降低被错误拦截的概率,提升限流效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种HTTP请求报文的限流方法及装置。
背景技术
我国正在积极推进互联网信息安全建设和公民隐私保护制度,而积极推进Web应用防护***(Web Application Firewall,WAF)相关技术的实现和改进,可以更好地为用户服务,提升信息安全防护等级和防护效率。然而当前市面上已有的限流限速的服务种类繁杂,功能欠缺,自定义规则灵活性差,防护程序稳定性差,同时针对一般企业具体业务没有很好的支持,不具有针对性。
目前大多数的WAF都是基于IP地址等特定的防护规则,采用本地配置文件的方式进行限速限流,效率比较低,更新需要重启相关模块重新加载配置文件,更新复杂,健壮性不高,命令行操作危险系数高,同时针对企业中具体业务的限速限流效果不够理想,相应的与访问控制结合性也较差。所以并不能满足一般企业对于WAF的业务需求。
可以使用IP黑名单结合本地配置文件进行限速的实现方式,使用开源的web网关OpenResty的lua_nginx_module通过相应的接口获取用户的访问IP,通过用户IP与本地配置文件中的相关IP黑名单做对比进行匹配,并统计相应的访问频率然后进行限速限流。
该技术虽然能够进行大多数恶意请求的限速限流的动作,但是规则更新需要重启OpenResty,需要让OpenResty重新加载本地的黑名单IP,容易对线上环境造成一定风险。维护一套黑名单IP,由于动态IP较多,十分容易对正常的业务请求造成错误拦截。
发明内容
本申请实施例的目的在于提供一种HTTP请求报文的限流方法及装置,用以缓解现有技术中存在的错误拦截率高的技术问题。
第一方面,本发明实施例提供一种HTTP请求报文的限流方法,包括:
接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;
如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;
如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。
在可选的实施方式中,所述方法还包括:
基于待限速的HTTP请求报文的IP地址和/或URL确定待限速的第二特征;
将所述第二特征存储在预先确定的限速规则中。
在可选的实施方式中,基于待限速的HTTP请求报文的IP地址和URL确定待限速的第二特征的步骤,包括:
接收来自客户端的待限速的IP字段和/或URL字段;
将所述待限速的IP字段和/或URL字段进行拼接得到待限速的key作为第二特征。
在可选的实施方式中,所述限速规则中包括被限速的特征与限速阈值的对应关系,所述限速阈值用于指示所述令牌桶中令牌的容量和/或更新频率。
在可选的实施方式中,所述被限速的特征存储在共享内存中。
在可选的实施方式中,还包括:
确定第三特征待更新的第一限速阈值;
基于所述第一限速阈值,更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率。
在可选的实施方式中,所述确定第三特征待更新的第一限速阈值的步骤包括:
确定目标业务的第二限速阈值,并对所述目标业务的流量进行监控,所述目标业务对应第三特征;
基于监控结果判断所述第二限速阈值是否符合预设要求;
当所述第二限速阈值不符合预设要求时,则确定符合预设要求的第一限速阈值。
在可选的实施方式中,基于所述第一限速阈值,更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率的步骤,包括:
基于观察者模式按照所述第一限速阈值进行限速,并确定观察日志;
基于所述观察日志判断是否有误拦截;
如果没有误拦截,则基于所述第一限速阈值更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率。
在可选的实施方式中,如果所述第一特征对应的令牌桶中存在令牌,则消耗一个令牌,并执行所述HTTP请求报文。
第二方面,本发明实施例提供一种HTTP请求报文的限流装置,包括:
接收模块,用于接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;
申请模块,用于如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;
限速模块,用于如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。
第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式任一项所述的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述前述实施方式任一项所述的方法。
本发明实施例提供一种HTTP请求报文的限流方法及装置。通过接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。以此可以降低被错误拦截的概率,提升限流效率。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种HTTP请求报文的限流方法流程示意图;
图2为本申请实施例提供的一种HTTP请求报文的限流方法的一个示例;
图3为本申请实施例提供的一种HTTP请求报文的限流方法的另一个示例;
图4为本申请实施例提供的一种HTTP请求报文的限流方法的另一个示例;
图5为本申请实施例提供的一种HTTP请求报文的限流装置结构示意图;
图6为本申请实施例提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
目前大多数的WAF都是基于IP地址等特定的防护规则,采用本地配置文件的方式进行限速限流,效率比较低,更新需要重启相关模块重新加载配置文件,更新复杂,健壮性不高,命令行操作危险系数高。
一种方式是使用IP黑名单结合本地配置文件进行限速的实现方式,使用OpenResty的lua_nginx_module通过相应的接口获取用户的访问IP,通过用户IP与本地配置文件中的相关IP黑名单做对比进行匹配,并统计相应的访问频率然后进行限速限流。该技术虽然能够进行大多数恶意请求的限速限流的动作,但是规则更新需要重启OpenResty,需要让OpenResty重新加载本地的黑名单IP,容易对线上环境造成一定风险。维护一套黑名单IP,由于动态IP较多,十分容易对正常的业务请求造成错误拦截。
另一种方式是使用IP+URL结合的方式进行限流限速,使用LeakBucket的动态限流算法进行限速。对应的限速规则使用json格式的本地配置文件,通过在OpenResty启动的时候将本地的限速规则文件加载进共享内存中,通过请求和规则进行匹配统计做限流限速的防护功能。该技术同样需要重启OpenResty进行规则的重新加载,同时只支持URL和IP两个字段的组合,只能针对单个IP访问单个URL进行访问速率限制,可扩展性不是很好,对于相关业务的限速需求并不能很好的满足。
基于此,本发明实施例提供了一种HTTP请求报文的限流方法及装置,以缓解现有技术中存在的错误拦截率高的技术问题。为便于对本实施例进行理解,首先对本发明实施例所公开的一种HTTP请求报文的限流方法进行详细介绍。
图1为本发明实施例提供的一种HTTP请求报文的限流方法流程示意图。如图1所示,该方法可以包括如下步骤:
步骤S110,接收HTTP请求报文,并确定HTTP请求报文的第一特征。
该HTTP请求报文可以为针对指定业务的数据请求,该HTTP请求报文可以用于请求获取资源。该资源可以包括用户信息或者业务信息等等。
HTTP请求报文的特征可以基于IP地址和/或统一资源***(Uniform ResourceLocator,URL)确定。例如,该HTTP请求报文的该第一特征可以为该HTTP请求报文的源IP地址,或者该HTTP请求所请求的资源的URL,还可以是源IP地址和URL的拼接。
步骤S120,如果第一特征在预先确定的限速规则中匹配成功,则从第一特征对应的令牌桶中申请令牌,令牌桶用于存储指定数量的令牌,且令牌桶按照指定的更新频率添加新的令牌,其中,限速规则包括多个被限速的特征。
在本步骤S120之前,可以预先确定限速规则。例如,可以基于待限速的HTTP请求报文的IP地址和/或URL确定待限速的第二特征;将第二特征存储在预先确定的限速规则中。再例如,可以接收来自客户端的待限速的IP字段和/或URL字段;将待限速的IP字段和/或URL字段进行拼接得到待限速的key作为第二特征。
其中,该限速规则中可以包括被限速的特征与限速阈值的对应关系,限速阈值用于指示令牌桶中令牌的容量和/或更新频率。该被限速的特征可以是配置的需要限速的规则,可以存储在共享内存中,例如,该被限速的特征可以为一个或多个IP字段、一个或多个URL字段或者一个或多个IP字段和一个或多个URL字段的组合等等。其中,该IP字段可以为IP地址的一部分,该URL字段可以为URL的一部分,在一些实施例中,该IP地址字段和该URL字段还可以称为字符串。其中,与该被限速的特征所对应的第一特征可以基于该HTTP请求报文的源IP地址,或者基于该HTTP请求所请求的资源的URL,还可以是基于源IP地址和URL的拼接来确定。
步骤S130,如果令牌桶中不存在令牌,则将HTTP请求报文执行限速操作。
该限速操作可以包括将该HTTP请求报文删除、丢弃或者不予响应等操作。
在一些实施例中,如果第一特征对应的令牌桶中存在令牌,则消耗一个令牌,并执行HTTP请求报文。
在一些实施例中,还可以对限速信息进行更新。例如,该方法还可以包括:确定第三特征待更新的第一限速阈值;基于第一限速阈值,更新第三特征对应的令牌桶中令牌的容量和/或更新频率。
其中,对于确定第三特征待更新的第一限速阈值的步骤具体可以通过如下步骤实现:确定目标业务的第二限速阈值,并对目标业务的流量进行监控,目标业务对应第三特征;基于监控结果判断第二限速阈值是否符合预设要求;当第二限速阈值不符合预设要求时,则确定符合预设要求的第一限速阈值。
该第二限速阈值一般为当前目标业务下,限速规则中被限速的特征的值,当该第二限速阈值不符合预设要求时,则调整限速阈值,确定符合预设要求的被限速的特征的值,也就是第一限速阈值。
该第三特征则可以是该HTTP请求报文的源IP地址,或者该HTTP请求所请求的资源的URL,还可以是源IP地址和URL的拼接。该三特征可以与前述第一特征相同或者不同,也就是说,基于上述步骤可以对前述第一特征所对应的限速规则进行更新,也可以对第一特征以外的其他特征对应的限速规则进行更新。
另外,对于基于第一限速阈值,更新第三特征对应的令牌桶中令牌的容量和/或更新频率的步骤具体可以通过如下步骤来实现:可以基于观察者模式按照第一限速阈值进行限速,并确定观察日志;基于观察日志判断是否有误拦截;如果没有误拦截,则基于第一限速阈值更新第三特征对应的令牌桶中令牌的容量和/或更新频率。
作为一个具体的示例,以OpenResty为例,对本发明实施例进行进一步的介绍。其中,该OpenResty为一个web平台,在该OpenResty可以配置一些限速规则,以便该OpenResty可以对流量(HTTP报文)进行监控。如图2所示,在本发明实施例中可以基于令牌桶动态限速算法(tokenBucket)来实现对HTTP请求报文的限流,基于该tokenBucket既可以实现动态限速。
其中,该tokenBucket可以指基于令牌桶实现的限速算法。该令牌桶用于存储令牌,该令牌桶对应有一个容量,该令牌桶的容量对应于限速阈值,该限速阈值与该令牌桶的容量正相关。可以以一个恒定的速度往令牌桶里放入令牌,该令牌桶里当前时刻令牌的最大数量代表当前时刻能够处理的最大HTTP请求报文的数量。换句话说,而如果HTTP请求报文需要被处理,即第一特征在预先确定的限速规则中匹配成功,则需要先从令牌桶里获取一个令牌,该HTTP请求报文被处理,也就意味着该令牌被消耗;当令牌桶里没有令牌可取时,则拒绝处理当前需要被处理的HTTP请求报文。另外,当令牌桶满时,新添加的令牌被丢弃或拒绝。
本实施方式可以在不重启OpenResty的前提下,方便快速的进行限速规则的实时同步,热加载最新的限速规则,同时让WAF根据HTTP请求报文的全部字段自定义配置限速的key,以此来实现限速限流等技术问题。
例如,在使用tokenBucket来限速时,可以先根据HTTP请求报文生成需要被限速的业务所对应的key。例如,可以确定HTTP请求报文的所有字段的内容,然后根据预先配置的限速key的生成逻辑,生成需要限速的key,以此可以实现具有相同访问特征的流量会生成相同的key,以此来作为限速的标准和依据,其中该限速key的生成逻辑可以预先配置在限速控制台。
该HTTP请求报文中的字段可以包括random、URI、header、query、cookie、postparams、IP、useragent、host、referer、HTTPmethod等等。
在本发明实施例中,还可以基于OpenResty的共享内存来实现特征的匹配。例如,可以将基于HTTP请求报文生成的需要限速的key存储在OpenResty的共享内存中,并基于令牌桶来实现访问的时间和频次的统计,通过针对时间和频次的变化来确认当前HTTP请求报文是否予以响应。
另外,位于共享内存中的限速规则还可以基于实际需要进行修改。例如,如图3所示,可以通过预设的应用程序接口(Application Programming Interface,API)修改共享内存中的限速规则。通过预设的API接口还可以实时的对当前的限速规则进行修改,到达动态调整限速阈值的目的。
作为一个示例,通过预设的API接口可以添加一条单个IP访问某个接口的限速规则。具体的,可以接收来自客户端的待添加的限速规则以及IP字段+URL字段的对应关系。根据预先配置的限速key的生成逻辑,将IP字段+URL字段完成字符串拼接,生成新的key(第二特征),将该新的key存入共享内存中,当接收到的HTTP请求报文具有相同的IP字段+URL字段时,只会可以增加该key的访问计数,该HTTP请求报文被响应时,需要消耗一个该key对应的token,直至完全耗尽该key对应的bucket中的所有token,待处理的HTTP请求报文则会因为没有可用的token而返回429状态码,该429状态码可以用于指示响应失败,也即该HTTP请求报文已经被限速。
其中,该IP字段+URL字段可由相关业务部门提供数据确定。其中,可以提供特征配置交互界面,基于该特征配置交互界面,可以配置IP字段+URL字段,例如,如图4所示。作为另一个示例,通过预设的API接口可以修改一条限速规则的限速阈值。具体的,随着业务开发的复杂程度越来越高,相应的使用的用户也越来越多。原有的很多限速规则已经并不能适用与最新的业务体量了,因此基于原有的限速规则,可能会造成某些用户的误拦。因此原来的限速规则得进行适当的修改,稍微提高相应的阈值。
其中,修改一条限速规则的限速阈值的步骤:研发的相关部门经过一段时间的观察确定某个业务(目标业务)的第二限速阈值,并反馈给***门。***门先通过WAF的前端控制台修改对应的限速规则,并设置为观察者模式,先观察日志,查看拦截和限速效果,查看是否有误拦截。***门经过一段时间的观察者模式后,在没有误拦请求的日志后开启拦截模式。在完成对应的规则修改之后,新则可以完成对应的tokenBucket的更新。
随着互联网的发展,各企业业务体量的增加,除防御传统web应用攻击外,还需要阻止爬虫抓取网站内容和“薅羊毛”等恶意访问。面对恶意访问,企业往往通过在web应用中添加检测代码来进行防御。但这样做会增加业务功能与安全功能的耦合,而且增删检测代码需要重新验证和部署web应用,这些都增加了web应用的维护成本。同时进行检测往往需要在全站范围内对符合条件的访问进行筛选和统计,web应用往往采用web服务器集群的模式工作,添加此功能会不可避免地带来架构复杂性和开发成本。本发明的主要目的是针对特定的业务需求,提出基于HTTP报文的请求内容,使用tokenBucket限速限流算法,使用预设的API接口进行规则更新,将规则存储在对应的共享内存中。
本发明是专门针对WAF应用的限速限流方案,使用基于OpenResty、HTTP、tokenBucket以及共享内存的解决方案的web应用防火墙,可以将限速限流的配置文件放置在共享内存中,方便加载和更新,规则实时生效。降低了因web应用攻击带来的损失和网站安全开发的成本,提高了规则的更新效率和匹配效率,提高了WAF的性能。结合本公司的具体业务需求,产生只符合本公司的限速限流规则,深刻结合业务需求,WAF的限速方案更加具有针对性和特殊性。
图5为本发明实施例提供的一种HTTP请求报文的限流装置结构示意图。如图5所示,该装置可以包括:
接收模块501,用于接收HTTP请求报文,并确定HTTP请求报文的第一特征;
申请模块502,用于如果第一特征在预先确定的限速规则中匹配成功,则从第一特征对应的令牌桶中申请令牌,令牌桶用于存储指定数量的令牌,且令牌桶按照指定的更新频率添加新的令牌,其中,限速规则包括多个被限速的特征;
限速模块503,用于如果令牌桶中不存在令牌,则将HTTP请求报文执行限速操作。
在一些实施例中,该装置还包括存储模块,用于:
基于待限速的HTTP请求报文的IP地址和/或URL确定待限速的第二特征;
将第二特征存储在预先确定的限速规则中。
在一些实施例中,存储模块还用于:
接收来自客户端的待限速的IP字段和/或URL字段;
将待限速的IP字段和/或URL字段进行拼接得到待限速的key作为第二特征。
在一些实施例中,限速规则中包括被限速的特征与限速阈值的对应关系,限速阈值用于指示令牌桶中令牌的容量和/或更新频率。
在一些实施例中,被限速的特征存储在共享内存中。
在一些实施例中,还包括,更新模块,用于:
确定第三特征待更新的第一限速阈值;
基于第一限速阈值,更新第三特征对应的令牌桶中令牌的容量和/或更新频率。
在一些实施例中,更新模块还用于:
确定目标业务的第二限速阈值,并对目标业务的流量进行监控,目标业务对应第三特征;
基于监控结果判断第二限速阈值是否符合预设要求;
当第二限速阈值不符合预设要求时,则确定符合预设要求的第一限速阈值。
在一些实施例中,更新模块还用于:
基于观察者模式按照第一限速阈值进行限速,并确定观察日志;
基于观察日志判断是否有误拦截;
如果没有误拦截,则基于第一限速阈值更新第三特征对应的令牌桶中令牌的容量和/或更新频率。
在一些实施例中,还可以包括消耗模块,用于如果第一特征对应的令牌桶中存在令牌,则消耗一个令牌,并执行HTTP请求报文。
本申请实施例提供的HTTP请求报文的限流装置,与上述实施例提供的HTTP请求报文的限流方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
如图6所示,本申请实施例提供的一种计算机设备700,包括:处理器701、存储器702和总线,存储器702存储有处理器701可执行的机器可读指令,当电子设备运行时,处理器701与存储器702之间通过总线通信,处理器701执行机器可读指令,以执行如上述HTTP请求报文的限流方法、装置及计算机设备方法的步骤。
具体地,上述存储器702和处理器701能够为通用的存储器和处理器,这里不做具体限定,当处理器701运行存储器702存储的计算机程序时,能够执行上述HTTP请求报文的限流方法。
对应于上述HTTP请求报文的限流方法,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有机器可运行指令,计算机可运行指令在被处理器调用和运行时,计算机可运行指令促使处理器运行上述HTTP请求报文的限流方法、装置及计算机设备方法的步骤。
本申请实施例所提供的HTTP请求报文的限流方法、装置及计算机设备装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的***、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例移动控制方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。
Claims (12)
1.一种HTTP请求报文的限流方法,其特征在于,包括:
接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;
如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;
如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于待限速的HTTP请求报文的IP地址和/或URL确定待限速的第二特征;
将所述第二特征存储在预先确定的限速规则中。
3.根据权利要求2所述的方法,其特征在于,所述基于待限速的HTTP请求报文的IP地址和/或URL确定待限速的第二特征的步骤,包括:
接收来自客户端的待限速的IP字段和/或URL字段;
将所述待限速的IP字段和/或URL字段进行拼接得到待限速的key作为第二特征。
4.根据权利要求1所述的方法,其特征在于,所述限速规则中包括被限速的特征与限速阈值的对应关系,所述限速阈值用于指示所述令牌桶中令牌的容量和/或更新频率。
5.根据权利要求4所述的方法,其特征在于,所述被限速的特征存储在共享内存中。
6.根据权利要求5所述的方法,其特征在于,还包括:
确定第三特征待更新的第一限速阈值;
基于所述第一限速阈值,更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率。
7.根据权利要求6所述的方法,其特征在于,所述确定第三特征待更新的第一限速阈值的步骤包括:
确定目标业务的第二限速阈值,并对所述目标业务的流量进行监控,所述目标业务对应第三特征;
基于监控结果判断所述第二限速阈值是否符合预设要求;
当所述第二限速阈值不符合预设要求时,则确定符合预设要求的第一限速阈值。
8.根据权利要求6所述的方法,其特征在于,所述基于所述第一限速阈值,更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率的步骤,包括:
基于观察者模式按照所述第一限速阈值进行限速,并确定观察日志;
基于所述观察日志判断是否有误拦截;
如果没有误拦截,则基于所述第一限速阈值更新所述第三特征对应的令牌桶中令牌的容量和/或更新频率。
9.根据权利要求1所述的方法,其特征在于,如果所述第一特征对应的令牌桶中存在令牌,则消耗一个令牌,并执行所述HTTP请求报文。
10.一种HTTP请求报文的限流装置,其特征在于,包括:
接收模块,用于接收HTTP请求报文,并确定所述HTTP请求报文的第一特征;
申请模块,用于如果所述第一特征在预先确定的限速规则中匹配成功,则从所述第一特征对应的令牌桶中申请令牌,所述令牌桶用于存储指定数量的令牌,且所述令牌桶按照指定的更新频率添加新的令牌,其中,所述限速规则包括多个被限速的特征;
限速模块,用于如果所述令牌桶中不存在令牌,则将所述HTTP请求报文执行限速操作。
11.一种计算机设备,其特征在于,包括存储器、处理器;所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1至9任一项所述的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行所述权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167639.0A CN112351082A (zh) | 2020-10-27 | 2020-10-27 | Http请求报文的限流方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011167639.0A CN112351082A (zh) | 2020-10-27 | 2020-10-27 | Http请求报文的限流方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112351082A true CN112351082A (zh) | 2021-02-09 |
Family
ID=74358822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011167639.0A Pending CN112351082A (zh) | 2020-10-27 | 2020-10-27 | Http请求报文的限流方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112351082A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070596A (zh) * | 2021-11-10 | 2022-02-18 | 上海钧正网络科技有限公司 | Web应用防护***的性能优化方法、***、终端及介质 |
CN114553791A (zh) * | 2022-01-19 | 2022-05-27 | 浙江百应科技有限公司 | 一种外部接口限流方法、装置、电子设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852227A (zh) * | 2005-08-25 | 2006-10-25 | 华为技术有限公司 | 一种网络设备有效防攻击的方法 |
CN101193045A (zh) * | 2006-11-21 | 2008-06-04 | 中兴通讯股份有限公司 | 线卡上捕获和限制数据报文速度的方法 |
CN105939285A (zh) * | 2015-08-21 | 2016-09-14 | 杭州迪普科技有限公司 | 报文转发方法及装置 |
CN106656849A (zh) * | 2016-11-01 | 2017-05-10 | 杭州迪普科技股份有限公司 | 报文限速方法及装置 |
CN111431816A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及*** |
-
2020
- 2020-10-27 CN CN202011167639.0A patent/CN112351082A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852227A (zh) * | 2005-08-25 | 2006-10-25 | 华为技术有限公司 | 一种网络设备有效防攻击的方法 |
CN101193045A (zh) * | 2006-11-21 | 2008-06-04 | 中兴通讯股份有限公司 | 线卡上捕获和限制数据报文速度的方法 |
CN105939285A (zh) * | 2015-08-21 | 2016-09-14 | 杭州迪普科技有限公司 | 报文转发方法及装置 |
CN106656849A (zh) * | 2016-11-01 | 2017-05-10 | 杭州迪普科技股份有限公司 | 报文限速方法及装置 |
CN111431816A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 一种分布式流量限速方法及*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070596A (zh) * | 2021-11-10 | 2022-02-18 | 上海钧正网络科技有限公司 | Web应用防护***的性能优化方法、***、终端及介质 |
CN114553791A (zh) * | 2022-01-19 | 2022-05-27 | 浙江百应科技有限公司 | 一种外部接口限流方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11323472B2 (en) | Identifying automated responses to security threats based on obtained communication interactions | |
EP3481029B1 (en) | Internet defense method and authentication server | |
US9634989B2 (en) | Systems and methods for detecting undesirable network traffic content | |
CN109194680B (zh) | 一种网络攻击识别方法、装置及设备 | |
WO2018121331A1 (zh) | 攻击请求的确定方法、装置及服务器 | |
CN115004673B (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
WO2020037781A1 (zh) | 一种实现服务器防攻击方法及装置 | |
CN110545541A (zh) | 防御攻击行为的方法、装置、设备、终端和介质 | |
CN112351082A (zh) | Http请求报文的限流方法及装置 | |
CN110798402B (zh) | 业务消息处理方法、装置、设备及存储介质 | |
CN111182060A (zh) | 报文的检测方法及装置 | |
CN110619022B (zh) | 基于区块链网络的节点检测方法、装置、设备及存储介质 | |
CN111885190B (zh) | 服务请求处理方法及*** | |
US11218357B1 (en) | Aggregation of incident data for correlated incidents | |
CN105933298B (zh) | 用于执行传输控制协议握手的设备和方法 | |
CN113541987A (zh) | 一种更新配置数据的方法和装置 | |
US11621883B1 (en) | Monitoring state information for incidents in an IT environment including interactions among analysts responding to other similar incidents | |
CN116961918A (zh) | 令牌获取方法和装置 | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
CN114866596B (zh) | 会话处理方法、装置、服务器及存储介质 | |
CN114827159B (zh) | 网络请求路径优化方法、装置、设备和存储介质 | |
CN110809004A (zh) | 一种安全防护方法、装置、电子设备及存储介质 | |
CN108833418B (zh) | 用于防御攻击的方法、装置和*** | |
CN101729569B (zh) | 分布式拒绝服务ddos攻击的防护方法、设备及*** | |
CN113839940A (zh) | 基于url模式树的防御方法、装置、电子设备和可读存储介质 |
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 | ||
CB02 | Change of applicant information |
Address after: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Shuidi Technology Group Co.,Ltd. Address before: 100102 201 / F, block C, 2 lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: Beijing Health Home Technology Co.,Ltd. |
|
CB02 | Change of applicant information |