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

一种轻量级接口限流方法与流程

2022-04-13 13:48:11 来源:中国专利 TAG:


1.本发明涉及接口限流技术领域,尤其涉及一种轻量级接口限流方法。


背景技术:

2.在项目开发中,接口限流是常见的需求,市面上已经成熟的限流框架虽功能多,但体积较大。
3.中国专利申请号cn201811537723.x揭露了一种接口限流方法,其包括获取当前接口的限流阈值;接收访问请求,并确认所述访问请求是否为正常请求;当确认所述访问请求为正常请求时,统计预设时间内所述当前接口接收的访问请求的总数量;确认所述当前接口的新的限流阈值,并设置所述新的限流阈值在单位时间内允许接收的访问请求数量的最大值;及将所述当前接口的限流阈值更新为新的限流阈值,并根据所述新的限流阈值对所述当前接口进行限流控制。该发明仅仅通过预设时间、限流阈值来进行限流,其限流没有针对性,对于急需要接收的信息无法得到快速的得到。
4.故,有必要提出一种轻量级接口限流方法来解决上述问题。


技术实现要素:

5.针对上述提出的问题,本发明目的在于提供一种轻量级接口限流方法,用以提高服务安全性。
6.为实现上述目的,本发明采用如下技术方案:一种轻量级接口限流方法,其步骤包括:对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;针对请求时间与系统当前时间比较,时差超过预设时差,则过滤此次请求;针对网络域名的信息中的ip地址与系统ip的白名单对比,确定请求的ip地址是否在ip白名单内,如果不在,则过滤此次请求;解析用户凭证获得api key,查询与api key对应的api secret;将请求时间、网络域名、请求方式、http协议、api secret中任意组合组装在一起后,使用hmacsha256加密算法加密并通过base64编码得到密文,比较密文与用户凭证的差异性,如果有差异,则过滤次请求;当验证都通过,进入接口限流流程,进行流量控制,已经通过api key同时获得了其准入的流量信息,将其已使用的流量信息记录在开源快速的数据库中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求,如果流量验证成功,则此次请求放行。
7.所述api secret从用来存储用户接口分配的流量信息的mysql数据库中查询。
8.与现有技术相比,本发明一种轻量级接口限流方法的有益效果在于,通过本发明的限流方法加入了鉴权,可以屏蔽大量非法请求;通过事先分配api key和api secret,密文使用算法加密和base64编码,即使被拦截也无法破解;时间信息保证接口请求的实效性,即使重复请求,也会被拦截;本发明拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。
附图说明
9.图1为本发明轻量级用于接口限流方法的流程示意图;
具体实施方式
10.下面通过本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
11.参考图1,为本发明轻量级用于接口限流方法流程示意图。
12.本发明为一种轻量级接口限流方法,其步骤包括:
13.步骤1,对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证。
14.步骤2,针对请求时间与系统当前时间比较,时差超过预设值,则过滤此次请求。
15.步骤3,针对网络域名的信息中的ip地址与系统ip的白名单对比,确定请求的ip地址是否在ip白名单内,如果不在,则过滤此次请求。
16.步骤4,解析用户凭证获得api key,通过api key查询与api key对应的api secret。
17.api secret从mysql数据库中查询,mysql为一种关系型数据库,用来存储用户接口分配的流量信息。
18.步骤5,将请求时间、网络域名、请求方式(get、post)、http协议、api secret中任意组合组装在一起后,使用hmacsha256加密算法加密并通过base64编码得到密文,比较密文与用户凭证的差异性,如果有差异,则过滤次请求。
19.步骤6,当验证都通过,进入接口限流流程,进行流量控制,已经通过api key同时获得了其准入的流量信息。系统会将其已使用的流量信息记录在开源快速的数据库(远程字典服务,redis)中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求。如果流量验证成功,则此次请求放行。redis为一种开源快速的数据库,用来快速记录用户接口的已调用信息。
20.通过本发明的限流方法加入了鉴权,可以屏蔽大量非法请求;通过事先分配api key和api secret,密文使用算法加密和base64编码,即使被拦截也无法破解;时间信息保证接口请求的实效性,即使重复请求,也会被拦截;本发明拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。
21.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,均系本发明所保护范围。


技术特征:
1.一种轻量级接口限流方法,其特征在于,其步骤包括:步骤1,对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;步骤2,针对请求时间与系统当前时间比较,时差超过预设时差,则过滤此次请求;步骤3,针对网络域名的信息中的ip地址与系统ip的白名单对比,确定请求的ip地址是否在ip白名单内,如果不在,则过滤此次请求;步骤4,解析用户凭证获得api key,查询与api key对应的api secret;步骤5,将请求时间、网络域名、请求方式、http协议、api secret中任意组合组装在一起后,使用hmacsha256加密算法加密并通过base64编码得到密文,比较密文与用户凭证的差异性,如果有差异,则过滤次请求;步骤6,当验证都通过,进行流量控制,已经通过api key同时获得了其准入的流量信息,将其已使用的流量信息记录在开源快速的数据库中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求,如果流量验证成功,则此次请求放行。2.如权利要求1所述的轻量级用于接口限流方法,其特征在于,所述api secret从用来存储用户接口分配的流量信息的mysql数据库中查询。

技术总结
本发明公开了一种轻量级接口限流方法,其步骤包括:对接口信息进行拦截,验证身份;对标签进行解析,获取信息的请求时间、信息来源的网络域名、信息的用户凭证;当信息进行验证并都通过,进入接口限流流程,进行流量控制,已经通过API Key同时获得了其准入的流量信息,将其已使用的流量信息记录在开源快速的数据库中,比较准入流量信息和已使用流量信息,如果已超过,则过滤此次请求,如果流量验证成功,则此次请求放行。本发明拦截规则可以灵活配置,可以做到不同的接口具有不同不同的拦截策略。该方法使用于常用开发组件,接入开发框架简单。单。


技术研发人员:李参宏 李宁 韩平军
受保护的技术使用者:江苏网进科技股份有限公司
技术研发日:2021.12.09
技术公布日:2022/4/12
再多了解一些

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

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

相关文献