判定接口是否被非法调用的方法与流程

文档序号:12467732阅读:1222来源:国知局

本发明涉及互联网交互技术,特别涉及判定接口是否被非法调用的方法。



背景技术:

接口的使用中包括两种类型:1.非开放式接口(即带有验证的接口,如:带验证码的登录接口/需要提供token验证的接口).2.开放式接口(如:发送验证码到手机).在非开放式接口的调用时,用户提交了自己的验证信息从而获得了系统的访问和调用权限,相对较为安全.在非开放式接口调用中由于不需要前置的用户信息,所以可以造成用户使用工具不限制的高频调用从而导致系统受到攻击。



技术实现要素:

本发明要解决的技术问题是:提供一种判定接口是否被非法调用的方法,防止接口被非法、恶意的调用。

为解决上述问题,本发明采用的技术方案是:判定接口是否被非法调用的方法,包括步骤:为每个接口设置其合法访问链,并保持在内存中;

用户通过一个指定地root级别的访问节点进入系统,进入系统之后,用户调用任意一个接口都被后台记录成为一个用户访问节点,并记录在内存中;

当用户调用某个接口时,系统将当前调用接口的访问节点以及该节点所有前置访问节点构成一个用户访问链;

系统从内存中读取该接口的合法访问链,并将合法访问链与用户访问链比对,一旦比对成功认为该次调用合法,并提供接口资源。

进一步的,在对合法访问链与用户访问链比对之前,还需对用户访问链使用优化算法进行优化。

具体的,所述优化算法为索引合并算法。

进一步的,所述内存为LRU内存,系统将内存中满足LRU置换条件的用户访问节点保存入数据库中。

本发明的有益效果是:本发明通过使用前置访问控制以及合法访问链来判定用户是否在恶意的调用接口,从而可以有效防止接口资源被非法占用。

附图说明

图1是系统结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,以下对本发明实施步骤进行了进一步的详细说明。

本发明使用前置访问控制和合法访问链来判定用户是否在恶意的调用接口。

1、前置访问控制的含义是,我们可以设想比如发送验证码到手机这个接口(下文中使用”获取验证码接口”来表述这个概念),不需要用户的信息也不可能获取用户的信息(比如注册流程中,先发送验证码再请求注册,任何人任何工具都可以调用这个接口完成发送验证码的功能).这时注册接口由于有发送验证码这个接口作为前置接口且提供了验证码这样一个控制字段就能够有效的避免被恶意注册,而获取验证码接口由于没有前置访问接口所以无法避免恶意请求发送验证码.并且这种恶意访问在一定的技术手段下难以被限制,比如高频更换请求源的工具(如,调用一次就更换请求ip以及手机号码).

2、合法访问链的设定。我们可以设想一个接口调用流程.我们以一个网站的注册流程为例,其访问顺序是:Index页面(引导页或主页)->注册页面->调用请求验证码接口->使用验证码调用注册接口.在这个顺序中我们可以看到,在调用请求验证码接口以前至少有2个前置访问控制单元(访问Index页面,访问注册页面),但是我们不能简单的认为用户的操作就是这样的单一结构,比如用户操作也可以是下面类似的顺序:Index页面(引导页或主页)->部分内容页面->help页面->注册页面->调用请求验证码接口->使用验证码调用注册接口,在这样的顺序中,其中的合法访问链是:Index页面(引导页或主页)->(other)->注册页面->调用请求验证码接口,即以Index页面(引导页或主页)访问开始,以注册页面->调用请求验证码接口这样两个连续不间断操作构成了一个完整的合法访问链.能够构成这样一个合法访问的前提是每一次的用户接口请求都被记录在了服务器端形成一个用户访问链(用户足迹)

3、实施例的描述

具体思路如下:

1)为每个接口设置其合法访问链,并保持在内存中。

2)系统必须有一个统一入口作为合法访问链的root链节点。用户通过该root级别的访问节点进入系统,进入系统之后,用户调用任意一个接口都被后台记录成为一个用户访问节点,并记录在内存中。其中,内存为LRU内存,LRU内存在运行时会将内存中满足LRU置换条件的用户访问节点保存入数据库中,可作为后续用户行为分析的数据源。

3)当用户调用某个接口时,系统获取该节点所有的前置访问节点,并将当前调用接口的访问节点以及该节点所有前置访问节点构成一个用户访问链(用户足迹),同时使用索引合并算法合并相同的用户足迹点(用户访问链节点)优化内存存储。由于用户的操作可能有很多的重复操作,这些重复的部分我们其实只需要用户的操作频率/次数记录而不需要其具体的操作。

4)系统从内存中读取该接口的合法访问链,并将合法访问链与用户访问链比对,一旦比对成功认为该次调用合法,并提供接口资源,用户即可调用该接口的资源。

实施例

下面以某次接口调用过程为例,进行具体说明。

A.用户发起接口调用;

B.系统将当前接口调用记录访问节点;

C.将本次访问节点存入LRU内存,从而更新或者创建LRU内存中的用户访问节点;与此同时,系统获取访问节点的所有前置访问节点,并将当前调用接口的访问节点以及该节点所有前置访问节点构成一个用户访问链;

D.系统从内存中读取该接口的合法访问链,并将合法访问链与用户访问链比对,一旦比对成功认为该次调用合法,并提供接口资源,如果认为是非法,则做异常处理。

以上描述了本发明的基本原理和主要的特征,说明书的描述只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1