调用API的控制装置及方法转让专利

申请号 : CN201610619359.6

文献号 : CN106295330B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 安占磊

申请人 : 努比亚技术有限公司

摘要 :

本发明公开了一种调用API的控制装置,包括确定模块,用于在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;所述确定模块还用于在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;控制模块,用于在所述调用请求合法时,允许所述应用调用所述API。本发明还公开了一种调用API的控制方法。本发明可以使得对API的调用变得可控,有效地防止非法用户恶意调用API,极大的提高了对API调用的安全性。

权利要求 :

1.一种调用API的控制装置,其特征在于,所述调用API的控制装置包括确定模块和控制模块;

所述确定模块包括:

获取单元,用于在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;

验证单元,用于将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过;

确定单元,用于在验证通过时,确定所述调用请求对应的API是否为预设的受限API;

所述确定模块还用于在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;

所述控制模块用于在所述调用请求合法时,允许所述应用调用所述API。

2.如权利要求1所述的调用API的控制装置,其特征在于,所述调用API的控制装置还包括生成模块,所述生成模块用于在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。

3.如权利要求1或2所述的调用API的控制装置,其特征在于,所述调用API的控制装置还包括查找模块,所述查找模块用于在预设的黑名单信息中查找是否存在获取的所述标识信息;

所述控制模块还用于在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;

所述控制模块还用于在预设的黑名单信息中不存在获取的所述标识信息时,返回调用所述验证单元。

4.一种调用API的控制方法,其特征在于,所述调用API的控制方法包括:在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;

对所述授权信息进行验证包括:将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过;

在验证通过时,确定所述调用请求对应的API是否为预设的受限API;

在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;

在所述调用请求合法时,允许所述应用调用所述API。

5.如权利要求4所述的调用API的控制方法,其特征在于,所述在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息的步骤之前,还包括:在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。

6.如权利要求4或5所述的调用API的控制方法,其特征在于,所述对所述授权信息进行验证的步骤之前,还包括:在预设的黑名单信息中查找是否存在获取的所述标识信息;

在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;

在预设的黑名单信息中不存在获取的所述标识信息时,执行所述对所述授权信息进行验证的步骤。

说明书 :

调用API的控制装置及方法

技术领域

[0001] 本发明涉及移动终端技术领域,尤其涉及一种调用API的控制装置及方法。

背景技术

[0002] 随着通信技术和移动互联网的高速发展,移动智能终端成为了访问互联网的主要方式之一。由于移动智能终端的功能不断强大和大面积普及,移动智能终端已成为人们日常生活不可或缺的用品。
[0003] 由于移动智能终端操作系统的开放性,操作系统中间层有很多API(Application Programming Interface,应用程序编程接口)开放给用户进行二次开发,非法用户很容易通过直接调用API实现恶意行为,比如通信类API可能会造成用户的资费损失,本地敏感API可能会造成用户私密信息的泄露。现有技术中,对API的调用安全性较低。

发明内容

[0004] 本发明的主要目的在于提供一种调用API的控制装置及方法,旨在提高调用API的安全性。
[0005] 本发明提供的调用API的控制装置包括:
[0006] 确定模块,用于在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;
[0007] 所述确定模块还用于在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;
[0008] 控制模块,用于在所述调用请求合法时,允许所述应用调用所述API。
[0009] 可选的,所述确定模块包括:
[0010] 获取单元,用于在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息;
[0011] 验证单元,用于对所述授权信息进行验证;
[0012] 确定单元,用于在验证通过时,确定所述调用请求对应的API是否为预设的受限API。
[0013] 可选的,所述获取单元还用于在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;
[0014] 所述验证单元还用于将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过。
[0015] 可选的,所述调用API的控制装置还包括生成模块,所述生成模块用于在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。
[0016] 可选的,所述调用API的控制装置还包括查找模块,所述查找模块用于在预设的黑名单信息中查找是否存在获取的所述标识信息;
[0017] 所述控制模块还用于在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;
[0018] 所述控制模块还用于在预设的黑名单信息中不存在获取的所述标识信息时,返回调用所述验证单元。
[0019] 此外,本发明进一步提供的调用API的控制方法包括:
[0020] 在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;
[0021] 在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;
[0022] 在所述调用请求合法时,允许所述应用调用所述API。
[0023] 可选的,所述在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API的步骤替换为:
[0024] 在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息;
[0025] 对所述授权信息进行验证;
[0026] 在验证通过时,确定所述调用请求对应的API是否为预设的受限API。
[0027] 可选的,所述在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息的步骤替换为:
[0028] 在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;
[0029] 所述对所述授权信息进行验证的步骤包括:将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过。
[0030] 可选的,所述在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息的步骤之前,还包括:
[0031] 在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。
[0032] 可选的,所述对所述授权信息进行验证的步骤之前,还包括:
[0033] 在预设的黑名单信息中查找是否存在获取的所述标识信息;
[0034] 在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;
[0035] 在预设的黑名单信息中不存在获取的所述标识信息时,执行所述对所述授权信息进行验证的步骤。
[0036] 本发明提出的调用API的控制装置及方法,通过在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API,并在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法,并在所述调用请求合法时,允许所述应用调用所述API,从而可以使得对API的调用变得可控,有效地防止非法用户恶意调用API,极大的提高了对API调用的安全性,例如,避免了由于非法用户恶意调用API而造成用户的资费损失以及用户私密信息的泄露。

附图说明

[0037] 图1为本发明各个实施例涉及的一个可选的终端的硬件结构示意图;
[0038] 图2为本发明调用API的控制装置第一实施例的功能模块示意图;
[0039] 图3为本发明调用API的控制装置第二实施例中确定模块的细化功能模块示意图;
[0040] 图4为本发明调用API的控制装置第四实施例的功能模块示意图;
[0041] 图5为本发明调用API的控制装置的一具体实施方式的架构图;
[0042] 图6为本发明调用API的控制方法第一实施例的流程示意图;
[0043] 图7为本发明调用API的控制方法第二实施例的流程示意图;
[0044] 图8为本发明调用API的控制方法第三实施例的流程示意图。
[0045] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0046] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0047] 现在将参考附图描述实现本发明各个实施例的系统架构。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
[0048] 本发明提供的调用API的控制装置及方法可以基于终端实现。具体地,终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、PAD(平板电脑)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。以下各个实施例以终端为手机为例进行说明。本发明各个实施例中的调用API的控制装置均基于上述终端实现。
[0049] 作为一种实现方案,上述终端的硬件结构可以如图1所示。
[0050] 参照图1,该终端可以包括应用程序编程接口单元110、用户输入单元120、存储器130、处理器140和通信总线150等等。图1示出了具有各种组件的终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。以下将详细描述终端的各个组件。
[0051] 应用程序编程接口单元110可以为该终端的操作系统中间层设置的API接口。
[0052] 用户输入单元120可以接收用户输入的API调用请求以及授权信息请求等。
[0053] 存储器130可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器130可选的还可以是独立于前述处理器140的存储装置。作为一种计算机存储介质的存储器130中可以存储调用API的控制程序等。
[0054] 处理器140可以调用存储器130中存储的调用API的控制程序,并执行以下操作:
[0055] 在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;
[0056] 在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;
[0057] 在所述调用请求合法时,允许所述应用调用所述API。
[0058] 处理器140还可以调用存储器130中存储的调用API的控制程序,并执行以下操作:
[0059] 在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息;
[0060] 对所述授权信息进行验证;
[0061] 在验证通过时,确定所述调用请求对应的API是否为预设的受限API。
[0062] 处理器140还可以调用存储器130中存储的调用API的控制程序,并执行以下操作:
[0063] 在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;
[0064] 将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过。
[0065] 处理器140还可以调用存储器130中存储的调用API的控制程序,并执行以下操作:
[0066] 在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。
[0067] 处理器140还可以调用存储器130中存储的调用API的控制程序,并执行以下操作:
[0068] 在预设的黑名单信息中查找是否存在获取的所述标识信息;
[0069] 在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;
[0070] 在预设的黑名单信息中不存在获取的所述标识信息时,对所述授权信息进行验证的步骤。
[0071] 基于上述硬件架构提出本发明调用API的控制装置的各个实施例。
[0072] 参照图2,图2为本发明调用API的控制装置第一实施例的功能模块示意图。需要强调的是,对本领域的技术人员来说,图2所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图2所示的调用API的控制装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该调用API的控制装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
[0073] 本实施例提出一种调用API的控制装置,该调用API的控制装置可以设置于上述终端上,本实施例及以下实施例以终端为手机为例进行说明。所述调用API的控制装置包括:
[0074] 确定模块210,用于在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;
[0075] 在本实施例中,所述应用可以为终端上已安装的应用。预设的受限API可以由用户设置,也可以为系统的默认设置。可选的,预设的受限API包括通信类API和/或本地敏感API。通信类API可能会造成用户的资费损失,如:拨打电话、三方通话、发送短信、发送彩信、发送邮件、移动网络数据连接、WLAN网络连接等。本地敏感API可能会造成用户私密信息的泄露,如:定位、通话录音、本地录音、拍照/摄像、对用户数据的操作等。可以将这些API设置为所述预设的受限API。
[0076] 所述确定模块210还用于在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;
[0077] 在本实施例中,预设的API调用规则可以由用户设置,也可以为系统的默认设置。预设的API调用规则可以对各个预设的受限API分组制定,也可分别针对单个预设的受限API制定。例如,拨打电话的API必须由用户手动发起,不能由后台程序自动启动等等。
[0078] 可选的,在所述调用请求对应的API不为预设的受限API时,则允许所述应用调用所述API。
[0079] 控制模块220,用于在所述调用请求合法时,允许所述应用调用所述API。
[0080] 在调用请求符合预设的API调用规则时,则认为调用请求合法,则运行所述应用调用所述API。
[0081] 本实施例中,以手机上的应用调用拨打电话的API为例。假设预设的受限API包括拨打电话的API,且拨打电话的API对应的调用规则为必须由用户手动发起,不能由后台程序自动启动。
[0082] 因此,在用户通过手机上的通话应用拨打电话时,即可视为接收到了通话应用对拨打电话的API的调用请求,并可以确定通话应用为预设的受限API。因此,进一步可以确定该通话应用由用户手动发起,符合API调用规则,因此,允许通话应用调用拨打电话的API。
[0083] 同样,在后台程序或者非法应用自动的通过手机上的通话应用拨打电话时,即可视为接收到了通话应用对拨打电话的API的调用请求,并可以确定通话应用为预设的受限API。因此,进一步可以确定该通话应用由后台程序或者非法应用自动的发起,不符合API调用规则,因此,拒绝后台程序或者非法应用调用拨打电话的API。
[0084] 可选的,在所述调用请求不合法时,则拒绝所述应用调用所述API。
[0085] 本发明提供的调用API的控制装置,通过在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API,并在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法,并在所述调用请求合法时,允许所述应用调用所述API,从而可以使得对API的调用变得可控,有效地防止非法用户恶意调用API,极大的提高了对API调用的安全性,例如,避免了由于非法用户恶意调用API而造成用户的资费损失以及用户私密信息的泄露。
[0086] 进一步地,基于本发明调用API的控制装置的第一实施例,本发明还提出了调用API的控制装置的第二实施例,参照图3,图3为本发明调用API的控制装置第二实施例中确定模块的细化功能模块示意图,与第一实施例不同的是,在第二实施例中,所述确定模块210包括:
[0087] 获取单元211,用于在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息;
[0088] 在本实施例中,授权信息可以为验证码,该验证码可以由系统预先分配。或者,授权信息还可以为账户信息等。
[0089] 应用在向系统发生API的调用请求时,将其预先获得的授权信息封装至调用请求中。
[0090] 验证单元212,用于对所述授权信息进行验证;
[0091] 在对授权信息验证时,例如,可以将获取的授权信息与预设的授权信息列表进行比对,在获取的授权信息与预设的授权信息列表中的任一授权信息匹配时,即可认为对所述授权信息验证成功。
[0092] 确定单元213,用于在验证通过时,确定所述调用请求对应的API是否为预设的受限API。
[0093] 在验证通过时,再确定所述调用请求对应的API是否为预设的受限API,以及在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法,并在所述调用请求合法时,允许所述应用调用所述API。
[0094] 可选的,在验证不通过时,则拒绝所述应用调用所述API。
[0095] 本实施例在接收到应用对API的调用请求时,先对调用请求对应的授权信息进行验证,并在验证通过时,再对API本身的权限进行验证,从而在调用API之前实现了双重验证,进一步提高了对API调用的安全性。
[0096] 进一步地,基于本发明调用API的控制装置的第二实施例,本发明还提出了调用API的控制装置的第三实施例,与第二实施例不同的是,在第三实施例中,所述获取单元211还用于在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;
[0097] 在本实施例中,在应用发送对API的调用请求时,不仅将预先获取的授权信息封装至调用请求中,还同时将该应用的标识信息封装至调用请求中。
[0098] 所述验证单元212还用于将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过。
[0099] 在本实施例中,预设的授权信息与标识信息的对应关系可以由用户设置,也可以为系统默认设置,或者由系统自动生成。
[0100] 可选的,可以采用以下方式自动生成所述预设的授权信息与标识信息的对应关系。所述调用API的控制装置还包括生成模块,所述生成模块用于在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。在本实施例中,应用在发送API的调用请求之前,先向系统发授权信息请求,且该授权信息请求中携带有该应用的标识信息。在系统接收到应用的授权信息请求时,可以随机为该应用分配一个授权信息,并建立该应用的授权信息与标识信息之间的关联关系,即生成所述预设的授权信息与标识信息的对应关系。还可以将为该应用分配的授权信息发送至应用,以供应用保存所述授权信息。从而在该应用发送API的调用请求时,可以将其标识信息以及授权信息一并封装至调用请求中。
[0101] 在系统获取到授权信息和标识信息后,同预设的授权信息与标识信息的对应关系比较。在预设的授权信息与标识信息的对应关系中查找到获取到的说起信息与标识信息并且其关联关系也一致时,则认为匹配,并判定对所述授权信息验证通过。
[0102] 例如,预设的授权信息与标识信息的对应关系例如包括:“123,应用1”和“456,应用2”。在接收到应用1的调用请求时,可以获得其授权信息为“123”,其标识信息为“应用1”,可以在预设的授权信息与标识信息的对应关系中查找到“应用1”与“123”的对应关系,因此则认为匹配,判定对所述授权信息验证通过。在非法应用获取到应用1的授权信息“123”时,若其想盗用该授权信息“123”,则发送调用请求,并在该调用请求中携带非法盗用的授权信息“123”以及该非法应用的标识信息“应用3”。在系统接收到来自非法应用的调用请求时,获取到授权信息“123”和标识信息“应用3”,虽然可以在预设的授权信息与标识信息中查找到授权信息“123”,但是预设的授权信息与标识信息的对应关系中,授权信息“123”对应的标识信息为“应用1”,与调用请求中携带的标识信息“应用3”不一致,则认为不匹配,因此,判定对所述授权信息验证不通过。
[0103] 本实施例通过对标识信息和授权信息同时验证,有效地防止了非法应用或非法用户盗用有效地授权信息,进一步提高了调用API的安全性。
[0104] 进一步地,基于本发明调用API的控制装置的第二或第三实施例,本发明还提出了调用API的控制装置的第四实施例,参照图4,图4为本发明调用API的控制装置第四实施例的功能模块示意图,与第二和第三实施例不同的是,在第四实施例中,所述调用API的控制装置还包括查找模块230,所述查找模块230用于在预设的黑名单信息中查找是否存在获取的所述标识信息;
[0105] 在本实施例中,黑名单信息可以为用户手动设置的,或者为系统默认设置的,或者系统从互联网上获取的。黑名单信息中可以包括黑名单应用对应的标识信息。
[0106] 所述控制模块220还用于在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;
[0107] 所述控制模块220还用于在预设的黑名单信息中不存在获取的所述标识信息时,返回调用所述验证单元212。
[0108] 本实施例中通过在对授权信息进行验证之前,先判断当前进行调用操作的应用是否为黑名单应用,在为黑名单应用时则直接拒绝调用,从而进一步提高了调用API的安全性,并提高了验证的效率。
[0109] 以下提出本发明调用API的控制装置的一具体实施方式:
[0110] 参照图5,图5为本发明调用API的控制装置的一具体实施方式的架构图,该调用API的控制装置可以包括API管控模块、API注册中心模块、API防火墙模块、用户请求模块、API网关模块、API授权中心模块和黑名单管理中心。
[0111] 1.API管控模块。其主要功能是注册API和制定相应API的安全规则。
[0112] (1)注册API功能。需要进行安全控制的API包括通信类API和本地敏感API。通信类API可能会造成用户的资费损失,如:拨打电话、三方通话、发送短信、发送彩信、发送邮件、移动网络数据连接、WLAN网络连接等。本地敏感API可能会造成用户私密信息的泄露,如:定位、通话录音、本地录音、拍照/摄像、对用户数据的操作等。将这些API注册至API注册中心模块。
[0113] (2)制定相应API规则。可以分组制定,也可针对单个API制定规则,比如拨打电话的API必须由用户手动发起,不能由后台程序自动启动等等。将规则发送至API防火墙模块。
[0114] 2.API注册中心模块。本模块中接受来自API管控模块注册的敏感API,并加以管理。同时,接受来自API网关发起的API受限查询。凡是由API管控模块注册的API一律视为受限API;如果API网关请求查询的API在注册中心有管理,则向API网关返回受限访问。
[0115] 3.API防火墙模块。本模块接收API管控模块制定的敏感API调用的规则。当API网关向API防火墙发送调用请求时,对API进行规则校验;如果校验合法,则允许调用系统API,否则拒绝调用。
[0116] 4.用户请求模块。当开发人员调用API时,需要首先向API授权中心申请授权;然后携带授权信息向API网关模块发起调用请求。
[0117] 5.API网关模块。接收到用户请求模块后,首先向API授权中心验证请求授权是否真实有效。如果有效,则向API注册中心查询API是否受限访问;否则,判定为非法请求,拒绝调用。如果API为受限API,则向API防火墙发送调用请求;否则直接调用系统API。
[0118] 6.API授权中心。接收用户请求模块的API请求授权,并返回授权信息;同时,接收API网关的授权验证请求是否真实有效。
[0119] 本发明进一步提供一种调用API的控制方法,该调用API的控制方法可以基于上述终端实现,本实施例及以下实施例以终端为手机为例进行说明。参照图6,图6为本发明调用API的控制方法第一实施例的流程示意图,所述调用API的控制方法包括:
[0120] 步骤S10,在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API;
[0121] 在本实施例中,所述应用可以为终端上已安装的应用。预设的受限API可以由用户设置,也可以为系统的默认设置。可选的,预设的受限API包括通信类API和/或本地敏感API。通信类API可能会造成用户的资费损失,如:拨打电话、三方通话、发送短信、发送彩信、发送邮件、移动网络数据连接、WLAN网络连接等。本地敏感API可能会造成用户私密信息的泄露,如:定位、通话录音、本地录音、拍照/摄像、对用户数据的操作等。可以将这些API设置为所述预设的受限API。
[0122] 步骤S20,在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法;
[0123] 在本实施例中,预设的API调用规则可以由用户设置,也可以为系统的默认设置。预设的API调用规则可以对各个预设的受限API分组制定,也可分别针对单个预设的受限API制定。例如,拨打电话的API必须由用户手动发起,不能由后台程序自动启动等等。
[0124] 可选的,在所述调用请求对应的API不为预设的受限API时,则允许所述应用调用所述API。
[0125] 步骤S30,在所述调用请求合法时,允许所述应用调用所述API。
[0126] 在调用请求符合预设的API调用规则时,则认为调用请求合法,则运行所述应用调用所述API。
[0127] 本实施例中,以手机上的应用调用拨打电话的API为例。假设预设的受限API包括拨打电话的API,且拨打电话的API对应的调用规则为必须由用户手动发起,不能由后台程序自动启动。
[0128] 因此,在用户通过手机上的通话应用拨打电话时,即可视为接收到了通话应用对拨打电话的API的调用请求,并可以确定通话应用为预设的受限API。因此,进一步可以确定该通话应用由用户手动发起,符合API调用规则,因此,允许通话应用调用拨打电话的API。
[0129] 同样,在后台程序或者非法应用自动的通过手机上的通话应用拨打电话时,即可视为接收到了通话应用对拨打电话的API的调用请求,并可以确定通话应用为预设的受限API。因此,进一步可以确定该通话应用由后台程序或者非法应用自动的发起,不符合API调用规则,因此,拒绝后台程序或者非法应用调用拨打电话的API。
[0130] 可选的,在所述调用请求不合法时,则拒绝所述应用调用所述API。
[0131] 本发明提供的调用API的控制方法,通过在接收到应用对API的调用请求时,确定所述调用请求对应的API是否为预设的受限API,并在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法,并在所述调用请求合法时,允许所述应用调用所述API,从而可以使得对API的调用变得可控,有效地防止非法用户恶意调用API,极大的提高了对API调用的安全性,例如,避免了由于非法用户恶意调用API而造成用户的资费损失以及用户私密信息的泄露。
[0132] 进一步地,基于本发明调用API的控制方法的第一实施例,本发明还提出了与上述调用API的控制装置第二实施例对应的调用API的控制方法的第二实施例,参照图7,图7为本发明调用API的控制方法第二实施例的流程示意图,与第一实施例不同的是,在第二实施例中,所述步骤S10替换为:
[0133] 步骤S11,在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息;
[0134] 在本实施例中,授权信息可以为验证码,该验证码可以由系统预先分配。或者,授权信息还可以为账户信息等。
[0135] 应用在向系统发生API的调用请求时,将其预先获得的授权信息封装至调用请求中。
[0136] 步骤S12,对所述授权信息进行验证;
[0137] 在对授权信息验证时,例如,可以将获取的授权信息与预设的授权信息列表进行比对,在获取的授权信息与预设的授权信息列表中的任一授权信息匹配时,即可认为对所述授权信息验证成功。
[0138] 步骤S13,在验证通过时,确定所述调用请求对应的API是否为预设的受限API。
[0139] 在验证通过时,再确定所述调用请求对应的API是否为预设的受限API,以及在所述调用请求对应的API为预设的受限API时,根据预设的API调用规则确定所述调用请求是否合法,并在所述调用请求合法时,允许所述应用调用所述API。
[0140] 可选的,在验证不通过时,则拒绝所述应用调用所述API。
[0141] 本实施例在接收到应用对API的调用请求时,先对调用请求对应的授权信息进行验证,并在验证通过时,再对API本身的权限进行验证,从而在调用API之前实现了双重验证,进一步提高了对API调用的安全性。
[0142] 进一步地,基于本发明调用API的控制方法的第二实施例,本发明还提出了与上述调用API的控制装置第三实施例对应的调用API的控制方法的第三实施例,参照图8,图8为本发明调用API的控制方法第三实施例的流程示意图,与第二实施例不同的是,在第三实施例中,所述步骤S11替换为:
[0143] 步骤S111,在接收到应用对API的调用请求时,获取所述调用请求携带的授权信息和所述应用的标识信息;
[0144] 在本实施例中,在应用发送对API的调用请求时,不仅将预先获取的授权信息封装至调用请求中,还同时将该应用的标识信息封装至调用请求中。
[0145] 所述步骤S12包括:步骤S121,将获取的授权信息与标识信息,同预设的授权信息与标识信息的对应关系比较,在匹配时,判定对所述授权信息验证通过。
[0146] 在本实施例中,预设的授权信息与标识信息的对应关系可以由用户设置,也可以为系统默认设置,或者由系统自动生成。
[0147] 可选的,可以采用以下方式自动生成所述预设的授权信息与标识信息的对应关系。所述步骤S111之前,还包括:在接收到应用的授权信息请求时,获取所述应用的标识信息,并为所述应用分配与其标识信息对应的授权信息,以生成所述预设的授权信息与标识信息的对应关系。在本实施例中,应用在发送API的调用请求之前,先向系统发授权信息请求,且该授权信息请求中携带有该应用的标识信息。在系统接收到应用的授权信息请求时,可以随机为该应用分配一个授权信息,并建立该应用的授权信息与标识信息之间的关联关系,即生成所述预设的授权信息与标识信息的对应关系。还可以将为该应用分配的授权信息发送至应用,以供应用保存所述授权信息。从而在该应用发送API的调用请求时,可以将其标识信息以及授权信息一并封装至调用请求中。
[0148] 在系统获取到授权信息和标识信息后,同预设的授权信息与标识信息的对应关系比较。在预设的授权信息与标识信息的对应关系中查找到获取到的说起信息与标识信息并且其关联关系也一致时,则认为匹配,并判定对所述授权信息验证通过。
[0149] 例如,预设的授权信息与标识信息的对应关系例如包括:“123,应用1”和“456,应用2”。在接收到应用1的调用请求时,可以获得其授权信息为“123”,其标识信息为“应用1”,可以在预设的授权信息与标识信息的对应关系中查找到“应用1”与“123”的对应关系,因此则认为匹配,判定对所述授权信息验证通过。在非法应用获取到应用1的授权信息“123”时,若其想盗用该授权信息“123”,则发送调用请求,并在该调用请求中携带非法盗用的授权信息“123”以及该非法应用的标识信息“应用3”。在系统接收到来自非法应用的调用请求时,获取到授权信息“123”和标识信息“应用3”,虽然可以在预设的授权信息与标识信息中查找到授权信息“123”,但是预设的授权信息与标识信息的对应关系中,授权信息“123”对应的标识信息为“应用1”,与调用请求中携带的标识信息“应用3”不一致,则认为不匹配,因此,判定对所述授权信息验证不通过。
[0150] 本实施例通过对标识信息和授权信息同时验证,有效地防止了非法应用或非法用户盗用有效地授权信息,进一步提高了调用API的安全性。
[0151] 进一步地,基于本发明调用API的控制方法的第二或第三实施例,本发明还提出了与上述调用API的控制装置第四实施例对应的调用API的控制方法的第四实施例,与第二和第三实施例不同的是,在第四实施例中,所述步骤S12之前,还包括:
[0152] 在预设的黑名单信息中查找是否存在获取的所述标识信息;
[0153] 在预设的黑名单信息中存在获取的所述标识信息时,拒绝所述应用调用所述API;
[0154] 在预设的黑名单信息中不存在获取的所述标识信息时,执行所述步骤S12。
[0155] 在本实施例中,黑名单信息可以为用户手动设置的,或者为系统默认设置的,或者系统从互联网上获取的。黑名单信息中可以包括黑名单应用对应的标识信息。
[0156] 本实施例中通过在对授权信息进行验证之前,先判断当前进行调用操作的应用是否为黑名单应用,在为黑名单应用时则直接拒绝调用,从而进一步提高了调用API的安全性,并提高了验证的效率。
[0157] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0158] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0159] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0160] 以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。