本发明专利技术公开了一种轻量级接口限流方法,其步骤包括:对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;当信息进行验证并都通过,进入接口限流流程,进行流量控制,已经通过API Key同时获得了其准入的流量信息,将其已使用的流量信息记录在开源快速的数据库中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求,如果流量验证成功,则此次请求放行。本发明专利技术拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。单。
【技术实现步骤摘要】
一种轻量级接口限流方法
[0001]本专利技术涉及接口限流
,尤其涉及一种轻量级接口限流方法。
技术介绍
[0002]在项目开发中,接口限流是常见的需求,市面上已经成熟的限流框架虽功能多,但体积较大。
[0003]中国专利申请号CN201811537723.X揭露了一种接口限流方法,其包括获取当前接口的限流阈值;接收访问请求,并确认所述访问请求是否为正常请求;当确认所述访问请求为正常请求时,统计预设时间内所述当前接口接收的访问请求的总数量;确认所述当前接口的新的限流阈值,并设置所述新的限流阈值在单位时间内允许接收的访问请求数量的最大值;及将所述当前接口的限流阈值更新为新的限流阈值,并根据所述新的限流阈值对所述当前接口进行限流控制。该专利技术仅仅通过预设时间、限流阈值来进行限流,其限流没有针对性,对于急需要接收的信息无法得到快速的得到。
[0004]故,有必要提出一种轻量级接口限流方法来解决上述问题。
技术实现思路
[0005]针对上述提出的问题,本专利技术目的在于提供一种轻量级接口限流方法,用以提高服务安全性。
[0006]为实现上述目的,本专利技术采用如下技术方案:一种轻量级接口限流方法,其步骤包括:对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;针对请求时间与系统当前时间比较,时差超过预设时差,则过滤此次请求;针对网络域名的信息中的IP地址与系统IP的白名单对比,确定请求的IP地址是否在IP白名单内,如果不在,则过滤此次请求;解析用户凭证获得API Key,查询与API Key对应的API Secret;将请求时间、网络域名、请求方式、http协议、API Secret中任意组合组装在一起后,使用hmacsha256加密算法加密并通过Base64编码得到密文,比较密文与用户凭证的差异性,如果有差异,则过滤次请求;当验证都通过,进入接口限流流程,进行流量控制,已经通过API Key同时获得了其准入的流量信息,将其已使用的流量信息记录在开源快速的数据库中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求,如果流量验证成功,则此次请求放行。
[0007]所述API Secret从用来存储用户接口分配的流量信息的MysqL数据库中查询。
[0008]与现有技术相比,本专利技术一种轻量级接口限流方法的有益效果在于,通过本专利技术的限流方法加入了鉴权,可以屏蔽大量非法请求;通过事先分配API Key和API Secret,密文使用算法加密和Base64编码,即使被拦截也无法破解;时间信息保证接口请求的实效性,即使重复请求,也会被拦截;本专利技术拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。
附图说明
[0009]图1为本专利技术轻量级用于接口限流方法的流程示意图;
具体实施方式
[0010]下面通过本专利技术实施例,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0011]参考图1,为本专利技术轻量级用于接口限流方法流程示意图。
[0012]本专利技术为一种轻量级接口限流方法,其步骤包括:
[0013]步骤1,对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证。
[0014]步骤2,针对请求时间与系统当前时间比较,时差超过预设值,则过滤此次请求。
[0015]步骤3,针对网络域名的信息中的IP地址与系统IP的白名单对比,确定请求的IP地址是否在IP白名单内,如果不在,则过滤此次请求。
[0016]步骤4,解析用户凭证获得API Key,通过API Key查询与API Key对应的API Secret。
[0017]API Secret从MysqL数据库中查询,Mysql为一种关系型数据库,用来存储用户接口分配的流量信息。
[0018]步骤5,将请求时间、网络域名、请求方式(GET、POST)、http协议、API Secret中任意组合组装在一起后,使用hmacsha256加密算法加密并通过Base64编码得到密文,比较密文与用户凭证的差异性,如果有差异,则过滤次请求。
[0019]步骤6,当验证都通过,进入接口限流流程,进行流量控制,已经通过API Key同时获得了其准入的流量信息。系统会将其已使用的流量信息记录在开源快速的数据库(远程字典服务,Redis)中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求。如果流量验证成功,则此次请求放行。Redis为一种开源快速的数据库,用来快速记录用户接口的已调用信息。
[0020]通过本专利技术的限流方法加入了鉴权,可以屏蔽大量非法请求;通过事先分配API Key和API Secret,密文使用算法加密和Base64编码,即使被拦截也无法破解;时间信息保证接口请求的实效性,即使重复请求,也会被拦截;本专利技术拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。
[0021]尽管已经示出和描述了本专利技术的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本专利技术的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,均系本专利技术所保护范围。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种轻量级接口限流方法,其特征在于,其步骤包括:步骤1,对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;步骤2,针对请求时间与系统当前时间比较,时差超过预设时差,则过滤此次请求;步骤3,针对网络域名的信息中的IP地址与系统IP的白名单对比,确定请求的IP地址是否在IP白名单内,如果不在,则过滤此次请求;步骤4,解析用户凭证获得API Key,查询与API Key对应的API Secret;步骤5,将请求时间、网络域名、请求方式、http协议、API Secret中...
【专利技术属性】
技术研发人员:李参宏,李宁,韩平军,
申请(专利权)人:江苏网进科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。