CN106557309A - 一种api的控制方法和设备 - Google Patents

一种api的控制方法和设备 Download PDF

Info

Publication number
CN106557309A
CN106557309A CN201510641900.9A CN201510641900A CN106557309A CN 106557309 A CN106557309 A CN 106557309A CN 201510641900 A CN201510641900 A CN 201510641900A CN 106557309 A CN106557309 A CN 106557309A
Authority
CN
China
Prior art keywords
api
application program
objects
call
calling
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
Application number
CN201510641900.9A
Other languages
English (en)
Inventor
郭跃华
唐虹刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510641900.9A priority Critical patent/CN106557309A/zh
Publication of CN106557309A publication Critical patent/CN106557309A/zh
Pending legal-status Critical Current

Links

Abstract

本申请实施例公开了一种API的控制方法。该方法包括:在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API对象;响应于所述调用控制信息表示所述API对象已被设置禁止调用,拒绝所述应用程序调用所述API对象。通过本发明实施例提供的方法,用户在应用程序运行过程中无需为了控制API对象是否允许调用去与终端设备进行多次交互,从而简化了用户操作,并且也减少了终端对用户操作的响应次数,减轻了终端设备的响应负担。此外,本申请还提供了一种API的控制设备。

Description

一种API的控制方法和设备
技术领域
本申请涉及应用程序控制领域,特别涉及一种API的控制方法和设备。
背景技术
随着用户终端设备的应用越来越广泛,在终端设备上安装和运行的各种应用程序越来越多。其中,应用程序为了实现其功能,通常需要通过调用API来触发终端设备执行相应的动作。例如,有些具有照片处理功能的应用程序会调用API来触发终端设备运行拍摄元件,以启动拍摄元件来获得照片;又如,有些应用程序会调用API来触发终端设备向其他终端设备发送短信。
考虑到应用程序频繁地调用API会造成终端设备过大的运行负担,并且,应用程序调用某些API所触发的终端设备动作会产生与费用相关的问题,甚至,有些应用程序会在用户不知情的情况下调用某些API去执行恶意行为(如偷发短信、偷启网络),通常应用程序会涉及一些具有调用权限控制的API,这些API的调用是被控制的,只有在被允许的情况下这些API才会被调用。为了实现API的调用控制,现有技术采用的是,在应用程序运行的过程中每次需要调用API时都去询问用户是否禁止本次API的调用。具体地,在应用程序运行的过程中,响应于API的调用请求,为用户呈现是否禁止API调用的操作界面,如果用户执行允许本次调用的操作,则调用该API来触发终端设备执行相应的动作,如果用户执行禁止本次调用的操作,则拒绝调用该API,从而拒绝触发终端设备执行相应的动作。因此,通过用户对每次API的调用进行自主地控制,可以避免应用程序频繁地调用API对终端设备造成运行负担,也可以避免应用程序在用户不知情的情况下触发终端设备与费用相关的动作或其他恶意行为。
但是,发明人经过研究发现,应用程序通常涉及到许多API,这些API又会被频繁地调用,因此,应用程序运行过程中需要经常地响应API的调用请求,而在现有技术中,对于具有调用权限控制的API来说,该API的调用控制是响应于每次该API的调用请求分别去询问用户的,用户的每次操作仅用于控制当前一次的该API的调用,这使得应用程序每次调用该API时都需要用户手动操作去控制是否执行本次该API的调用,因此,在应用程序运行过程中,用户需要经常地与终端设备进行交互以实现对该API的调用控制,这不仅造成了繁琐的用户操作,而且也使得终端设备对用户操作的响应过于频繁,导致终端设备较重的响应负担。
发明内容
本申请实施例所要解决的技术问题是,提供一种权限API的控制方法和设备,以解决按照现有技术中应用程序每次调用API时都需要用户手动操作去控制是否执行本次API的调用而导致的用户操作繁琐以及终端设备响应负担较重的技术问题。
为解决上述技术问题,本申请实施例提供了一种API的控制方法,该方法包括:
在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;
响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API对象;
响应于所述调用控制信息表示所述API对象已被设置禁止调用,拒绝所述应用程序调用所述API对象。
可选的,所述API对象为所述应用程序单一调用的API。
可选的,所述API对象为所述应用程序按照调用序列连续调用多个API组成的API组合。
可选的,还包括:
响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。
可选的,还包括:
响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用,呈现所述API对象的描述信息;
响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
可选的,所述解析所述应用程序涉及所述API对象的调用具体是通过预设的API对象与权限间对应关系来实现的。
可选的,还包括:
响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找,并对查找不到的自定义API进行呈现。
此外,本申请实施例提供了一种API的控制设备,该设备包括:
读取模块,用于在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;
允许模块,用于响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API;
拒绝模块,用于响应于所述调用控制信息表示所述API已被设置禁止调用,拒绝所述应用程序调用所述API。
可选的,所述API对象为所述应用程序单一调用的API。
可选的,所述API对象为所述应用程序按照调用序列连续调用多个API组成的API组合。
可选的,还包括:
第一呈现模块,用于响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。
可选的,还包括:
解析模块,用于响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用;
第二呈现模块,用于呈现所述API对象的描述信息;
记录模块,用于响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
可选的,所述解析模块,具体用于通过预设的API对象与权限间对应关系,解析所述应用程序涉及所述API对象的调用。
可选的,还包括:
查找模块,用于响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找;
第三呈现模块,用于对查找不到的自定义API进行呈现。
与现有技术相比,本申请具有以下优点:
根据本申请实施例的技术方案,其采用的是,用户预先对应用程序涉及的API对象是否禁用的调用控制进行设置,并根据用户的设置操作记录API对象在该应用程序下的调用控制信息,而在应用程序运行过程中,当应用程序请求调用该API对象时,可以根据预先记录的调用控制信息来确定是否对该API对象进行调用。因此,对于具有调用权限控制的API来说,用户可以一次性对应用程序中所有API进行调用控制的设置,而在应用程序运行过程中,每一次调用API时都可以根据预先记录的调用控制信息来对API的调用进行控制,而无需再分别针对每一次API的调用去询问用户是否禁止本次API的调用,这样用户在应用程序运行过程中也无需再为了实现对API的权限调用控制去与终端设备进行多次交互,从而简化了用户操作,并且也大大减少了终端对用户操作的响应次数,显著地减轻了终端设备的响应负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施方式的一个示例性应用场景的框架示意图;
图2为本申请中API的控制方法一实施例的流程图;
图3为本申请实施例中API的控制方法另一实施例的流程图;
图4为本申请实施例中API调用组合的调用控制一实施方式的流程图;
图5为本申请实施例中控制权限API的一种具体应用示例的示意图;
图6为本申请实施例中程序预分析器的一种具体功能框架示例的示意图;
图7为本申请中API的控制设备一实施例的结果图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请的发明人经过研究发现,对于具有调用权限控制的API,虽然现有技术通过在应用程序运行过程中响应每次的API调用请求去询问用户是否禁止本次API的调用,可以使得用户对每次API的调用进行自主地控制,但是,由于应用程序涉及到许多API并且这些API会被频繁地调用,因此,应用程序在运行过程中经常需要响应API的调用请求去询问用户是否禁止本次API的调用,因此,在应用程序运行过程中,用户需要经常地与终端设备进行交互以实现对API的调用控制,这不仅造成了繁琐的用户操作,而且也使得终端设备对用户操作的响应过于频繁,导致终端设备较重的响应负担。
基于上述研究,本申请的主要思想之一可以包括:用户预先对应用程序涉及的API对象是否禁用的调用控制进行设置并根据用户的设置操作记录API对象在该应用程序下的调用控制信息,而在应用程序运行过程中,当应用程序请求调用该API对象时,可以根据预先记录的调用控制信息来确定是否对该API对象进行调用。因此,对于具有调用权限控制的API来说,用户可以一次性对应用程序中所有API进行调用控制的设置,而在应用程序运行过程中,每一次调用API时都可以根据预先记录的调用控制信息来对API的调用进行控制,而无需再分别针对每一次API的调用去询问用户是否禁止本次API的调用,这样用户在应用程序运行过程中也无需再为了实现对API的权限调用控制去与终端设备进行多次交互,从而简化了用户操作,并且也大大减少了终端对用户操作的响应次数,显著地减轻了终端设备的响应负担。
基于上述基本思想,本申请实施例的应用场景之一,可以通过客户端101与用户之间的交互来实现。如图1所示,在这一应用场景中,在应用程序运行的过程中,客户端101响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息,然后,客户端101响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API对象,或者,客户端101响应于所述调用控制信息表示所述API对象已被设置禁止调用,拒绝所述应用程序调用所述API对象。其中,所述API的调用可以是用于客户端101与服务器102之间进行交互,或者,所述API的调用也可以是用于客户端101自身执行动作,本申请实施例对此不做限定。
需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
在介绍了本申请的主要思想以后,下面结合附图,详细说明本申请的各种非限制性实施方式。
参见图2,示出了本申请中API的控制方法一实施例的流程图。本实施例例如可以应用于应用程序所在的客户端,具体可以包括以下步骤:
S201、在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息。
具体实现时,应用程序在运行的过程中会频繁地调用各种API对象。对于某一API对象来说,每当应用程序请求调用该API的时候,可以在预先为各API对象记录的调用控制信息中,查找出该API对象的调用控制信息进行读取,并根据该调用控制信息来确定是否允许应用程序调用该API对象。也即,每当应用程序请求调用API对象时,可以执行S201,并根据S201读取到的调用控制信息来确定进入S202还是S203。
S202、响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API对象。
S203、响应于所述调用控制信息表示所述API对象已被设置禁止调用,拒绝所述应用程序调用所述API对象。
在本实施例的一些实施方式中,对于预先被用户设置为禁止调用的API对象,在某些情况下用户可能会希望应用程序能够调用,为此,还可以在应用程序运行过程中拒绝调用API对象时向用户进行提示,以便用户自主地去控制是否允许应用程序本次调用原本被拒绝的API对象。具体地,本实施例如还可以包括:响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。进一步地,在向用户提示API对象被禁用的基础上,考虑到用户在该提示下可能会对该API对象的本次调用重新进行控制,为此,还可以在呈现该API对象的禁用提示信息的界面上提供是否允许该API对象的本次调用的设置操作方式,以便用户可以在查看到提示的情况下直接对API对象的本次调用重新设置,这不仅简化了用户的操作,也减少了终端设备需要响应用户交互的次数,从而减轻了终端设备的响应负担。
在一些实施方式中,应用程序的有些行为是对一个API单一地进行调用。此时,本实施例所提及的API对象可以为所述应用程序单一调用的API。本实施例图2所示的流程可以是在应用程序单一调用API时对API的调用控制。
在另一些实施方式中,应用程序的有些行为可能会连续调用一系列API,这一系列API,例如,对于应用程序获取Device ID并联网这一整体行为,应用程序是先调用用于获取Device ID的API,再调用用于联网的API。此时,本实施例所提及的API对象可以为所述应用程序按照调用序列连续调用多个API组成的API组合。本实施例图2所示的流程可以是在应用程序连续调用对个API组成的API组合时对API组合的调用控制。
需要说明的是,API对象的调用控制信息是预先根据用户的设置操作而记录的。具体地,本实施例例如还可以包括:响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用,呈现所述API对象的描述信息;响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
其中,对应用程序的解析,具体是通过预设的API对象与权限间对应关系来实现的,即,所述解析所述应用程序涉及所述API对象的调用具体是通过预设的API对象与权限间对应关系来实现的。具体地,可以预先设置各API与权限间的对应关系,在需要对应用程序控制调用API对象进行设置时,可以对应用程序的代码行为逻辑进行解析,得到应用程序中的所有API,然后根据预先设置的API与权限间的对应关系,可以从应用程序的所有API中识别出所有需要调用权限控制的API。
可以理解的是,考虑到应用程序往往自身会自定义其涉及到的、需要调用权限控制的API,有时这些自定义的API中会存在一些应用程序的代码行为逻辑根本不会调用的API,有时这些自定义的API中会存在一些没有预先确定是否需要调用控制的API,而这两种API中往往又存在用户关心调用情况的API,为此,在本实施例一些实施方式中,可以向用户提示在应用程序中具有哪些属于上述两种API的,从而使用户能够自主选择是否要对应用程序中的这两种API进行调用控制。具体地,本实施例例如还可以包括:响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找,并对查找不到的自定义API进行呈现。其中,在实际解析到的API中查找不到的自定义API,即是包括了应用程序的代码行为逻辑不会调用的自定义API或自定义API没有预先确定是否需要进行调用控制。
通过本实施例的技术方案,对于需要调用权限控制的API对象来说,用户可以一次性对应用程序中所有API对象进行调用控制的设置,而在应用程序运行过程中,每一次调用API对象时都可以根据预先记录的调用控制信息来对API对象的调用进行控制,而无需再分别针对每一次API对象的调用去询问用户是否禁止本次API对象的调用,这样用户在应用程序运行过程中也无需再为了实现对API对象的调用控制去与终端设备进行多次交互,从而简化了用户操作,并且也大大减少了终端对用户操作的响应次数,显著地减轻了终端设备的响应负担。
参见图3,示出了本申请中权限API的控制方法一实施例的流程图。在本实施例中,“权限API”表示需要进行调用控制的API,“当前权限API”表示应用程序当前请求调用的权限API,“目标调用控制信息”表示当前权限API在所述应用程序下的调用控制信息,“当前API调用组合”表示所述应用程序当前请求连续调用一系列API组成的API组合,“目标组合调用控制信息”表示所述当前API调用组合在所述应用程序下的调用控制信息。该方法例如可以应用于应用程序所在的客户端,具体可以包括以下步骤:
S301、响应于对应用程序的权限API调用控制的设置指令,解析所述应用程序的所有权限API,呈现所述应用程序的各个权限API,并响应于对所述应用程序的各个所述权限API的调用控制的设置操作,记录各个所述权限API在所述应用程序下的调用控制信息。
具体实现时,当响应到对应用程序的权限API调用控制的设置指令时,可以对应用程序进行解析,得到应用程序涉及到的所有权限API,再将应用程序的所有权限API都呈现给用户,以向用户提供应用程序所有权限API的调用控制设置界面,当用户在该调用控制设置界面上对应用程序各个权限API的调用控制进行了设置操作之后,可以按照用户对各个权限API调用控制的设置操作为各个权限API记录调用控制信息。
其中,对应用程序的解析,例如具体可以是通过预设的API与权限间对应关系来实现的。具体地,可以预先设置各API与权限间的对应关系,在需要对某个应用程序的权限API的调用控制进行设置时,可以对应用程序的代码行为逻辑进行解析,得到应用程序中的所有API,然后根据预先设置的API与权限间的对应关系,可以从应用程序的所有API中识别出所有的权限API。其中,预设的API与权限间的对应关系,即是用于表示预设的各API是否为权限API。
可以理解的是,在一些实施方式中,应用程序的所有权限API,例如可以是呈现在同一个调用控制设置界面中,也即,应用程序通过一个调用控制设置界面来提供所有权限API的调用控制的设置操作方式,这样用户可以在一个调用控制设置界面上设置所有权限API是否需要被禁止调用。在另一些实施方式中,应用程序的所有权限API,又如可以是分配到多个调用控制设置界面中呈现,也即,应用程序通过多个调用控制设置界面来提供所有权限API的设置操作方式,每个调用控制设置界面仅提供一部分权限API的设置操作方式,这样用户可以在多个调用控制设置界面分别设置各权限API是否需要被禁止调用,其中,每个调用控制设置界面例如可以是提供某一个或某一类别的权限API的设置操作方式。
需要说明的是,各权限API在该应用程序下的调用控制信息,表示的即是用户对该应用程序调用各权限API进行控制的设置结果。具体地,对于任意一个应用程序的权限API来说,如果用户将该权限API设置为允许该应用程序调用,则该权限API在该应用程序下的调用控制信息表示该权限API已被设置为允许调用,如果用户将该权限API设置为禁止该应用程序调用,则该权限API在该应用程序下的调用控制信息表示该权限API已被设置为禁止调用。
可以理解的是,考虑到应用程序往往自身会自定义其涉及到的权限API,,有时这些自定义的权限API中会存在一些应用程序的代码行为逻辑根本不会调用的API,有时这些自定义的权限API中会存在一些不属于预设的权限API的API,而这两种API中往往又存在用户关心调用情况的API,为此,在本实施例一些实施方式中,可以向用户提示在应用程序中具有哪些属于上述两种API的,从而使用户能够自主选择是否要对应用程序中的这两种API进行调用控制。具体地,本实施例例如还可以包括:响应于解析到所述应用程序的所有权限API,以所述应用程序自定义的权限API作为自定义权限API,在解析到的权限API中对各个自定义权限API进行查找,并对查找不到的自定义权限API进行呈现。其中,在解析到的权限API中查找不到的自定义权限API,即是包括了应用程序的代码行为逻辑不会调用的自定义权限API以及预设权限API中不存在的自定义权限API。进一步地,对于应用程序中解析不到的自定义权限API,在向用户提示这些API的基础上,考虑到用户在该提示下可能会对其中某些API进行调用控制的设置,还可以在呈现这些API的界面上提供这些API的调用控制的设置操作方式,以便用户可以在查看到提示的情况下直接对这些API的调用控制进行设置,这不仅简化了用户的操作,也减少了终端设备需要响应用户交互的次数,从而减轻了终端设备的响应负担。
在本实施例中,相对于应用程序运行过程对权限API的调用,S301对应用程序所有API的解析、其调用控制的设置及其调用控制信息的记录是预先执行的动作。例如,考虑到应用程序在安装完成之后就可以运行并开始调用API,S301可以是应用程序安装完成时自动执行的动作,也即,所述对应用程序的权限API调用控制的设置指令,可以是在应用程序安装完成时由应用程序自动触发的指令。又如,考虑到对应用程序中所有权限API的调用控制是由用户进行设置的,S301可以是应用程序安装完成之后由用户触发的动作,也即,所述对应用程序的权限API调用控制的设置指令,可以是在应用程序安装完成之后响应用户对权限API调用控制的设置请求操作而触发的指令。
可以理解的是,在S301执行完成一次而为各权限API记录了调用控制信息之后,后续每次应用程序请求调用权限API时,仅需直接从S302开始执行,而无需再执行S301。
S302、在所述应用程序运行的过程中,响应于所述当前权限API的调用请求,读取所述当前权限API在所述应用程序下的目标调用控制信息;其中,所述当前权限API为所述应用程序的任意一个权限API。
具体实现时,应用程序在运行的过程中会频繁地调用各种API,每当应用程序当前请求调用权限API的时候,以当前请求调用的权限API作为当前权限API,可以在预先为各权限API记录的调用控制信息中,查找出当前权限API的调用控制信息作为目标调用控制信息并进行读取,以便根据目标调用控制信息来确定是否允许应用程序调用当前权限API。也即,每当应用程序当前请求调用权限API时,可以执行S302,并根据S302读取到的目标调用控制信息来确定进入S303还是S304。
在本实施例的一些实施方式中,对于当前权限API的目标调用控制信息的读取例如可以是,针对每一个应用程序当前请求调用的API,先识别是否为权限API,再在确定当前请求的API为权限API的情况下去查找并读取该权限API的调用控制信息。具体地,S302例如可以包括:响应于应用程序对当前API的调用请求,识别当前API是否属于预先从该应用程序解析出的权限API,响应于识别到当前API属于预先从该应用程序解析出的权限API,以当前API作为当前权限API,查找为当前权限API在该应用程序下记录的调用控制信息并读取。
在本实施例的另一些实施方式中,对于当前权限API的目标调用控制信息的读取又如可以是,针对每一个应用程序当前请求调用的API,直接在为应用程序各个权限API记录的调用控制信息中查找该当前API的调用控制信息,如果能够查找到则表明当前API为权限API,这样可以直接对其调用控制信息进行读取,也即,对当前API是否为权限API的识别以及对当前API的调用控制信息的查找可以通过一个动作来实现。具体地,S302例如可以包括:响应于应用程序对当前API的调用请求,在为应用程序各个权限API记录的调用控制信息中查找该当前API的调用控制信息,响应于查找到当前API的调用控制信息,以当前API作为当前权限API,以当前API的调用控制信息为目标调用控制信息,对当前权限API在该应用程序下记录的目标调用控制信息进行读取。
S303、响应于所述目标调用控制信息表示所述当前权限API已被设置为允许调用,允许所述应用程序调用所述当前权限API。
S304、响应于所述目标调用控制信息表示所述当前权限API已被设置禁止调用,拒绝所述应用程序调用所述当前权限API。
在本实施例的一些实施方式中,对于预先被用户设置为禁止调用的权限API,在某些情况下用户可能会希望应用程序能够调用该权限API,为此,还可以在应用程序运行过程中拒绝调用权限API时向用户进行提示,以便用户自主地去控制是否允许应用程序本次调用原本被拒绝的权限API。具体地,本实施例如还可以包括:响应于所述目标调用控制信息表示所述当前权限API已被设置禁止调用,呈现所述当前权限API的禁用提示信息,其中,所述禁用提示信息用于提示所述当前权限API被禁用。进一步地,对于当前权限API,在向用户提示被禁用的基础上,考虑到用户在该提示下可能会对当前权限API的本次调用重新进行控制,为此,还可以在呈现当前权限API的禁用提示信息的界面上提供是否允许当前权限API的本次调用的设置操作方式,以便用户可以在查看到提示的情况下直接对当前权限API的本次调用重新设置,这不仅简化了用户的操作,也减少了终端设备需要响应用户交互的次数,从而减轻了终端设备的响应负担。
需要说明的是,应用程序的有些行为可能会连续调用一系列权限API,这一系列权限API,例如,对于应用程序获取Device ID并联网这一整体行为,应用程序是先调用用于获取Device ID的API,再调用用于联网的API。考虑到应用程序行为也具有需要禁用的可能,为此,在本实施例的一些实施方式中,可以将应用程序行为所对应的一系列权限API组成一个调用序列作为API调用组合,并将API调用组合整体提供给用户进行调用控制的设置。例如,对于上述获取Device ID并联网这一应用程序的行为,可以将用于获取DeviceID的API与用于联网的API组成一个API调用组合提供给用户进行调用控制的设置。具体地,在API调用组合的调用控制方式中,如图4所示,本实施例例如还可以包括:
S401、响应于解析到所述应用程序的所有权限API,在应用程序涉及的API调用组合中对各个预设API调用组合进行查找,以查找到的预设API调用组合作为目标API调用组合,呈现所述目标API调用组合,并响应于对所述目标API调用组合的调用控制的设置操作,记录所述目标API调用组合在所述应用程序下的组合调用控制信息;其中,API调用组合表示响应同一行为而连续调用的一系列权限API组成的调用序列,所述预设API调用组合表示预先设置的可禁用的一系列权限API组成的调用序列。
具体实现时,当解析到应用程序的所有权限API时,可以按照预先设置的可禁用行为对应的预设API调用组合,查找应用程序涉及的API调用组合中存在哪些预设API调用组合,如果能够查找到应用程序所涉及的预设API调用组合,则表明应用程序中存在这些预设API调用组合对应的可禁用行为,此时,以查找到的API调用组合作为目标API调用组合,可以将所有目标API调用组合都呈现给用户,以向用户提供所有目标API调用组合的调用控制设置界面,当用户在该调用设置界面上对各个目标API调用组合进行了设置操作之后,可以按照用户对各个权限API调用控制的设置操作为各个目标API调用组合记录组合调用控制信息。其中,预设API调用组合是预先收集到的各种可禁用行为所对应的API调用组合,这些可禁用行为可以是应用程序频繁进行调用的、造成终端设备过大运行负担的行为,或者也可以是应用程序在用户不知情的情况下触发终端设备执行的动作,或者还可以是其他任何用户可能会禁用的行为。
可以理解的是,在一些实施方式中,应用程序的所有目标API调用组合,例如可以是呈现在同一个调用控制设置界面中,也即,应用程序通过一个调用控制设置界面来提供所有目标API调用组合的调用控制的设置操作方式,这样用户可以在一个调用控制设置界面上设置所有目标API调用组合是否需要被禁止调用。在另一些实施方式中,应用程序的所有目标API调用组合,又如可以是分配到多个调用控制设置界面中呈现,也即,应用程序通过多个调用控制设置界面来提供所有目标API调用组合的设置操作方式,每个调用控制设置界面仅提供一部分目标API调用组合的设置操作方式,这样用户可以在多个调用控制设置界面分别设置各目标API调用组合是否需要被禁止调用,其中,每个调用控制设置界面例如可以是提供某一个或某一类别的目标API调用组合的设置操作方式。
需要说明的是,各目标API调用组合在该应用程序下的组合调用控制信息,表示的是用户对该应用程序调用各目标API调用组合进行控制的设置结果。具体地,对于任意一个应用程序的目标API调用组合来说,如果用户将该目标API调用组合设置为允许该应用程序调用,则该目标API调用组合在该应用程序下的调用控制信息表示该目标API调用组合已被设置为允许调用,如果用户将该目标API调用组合设置为禁止该应用程序调用,则该目标API调用组合在该应用程序下的调用控制信息表示该目标API调用组合已被设置为禁止调用。
在本实施例中,相对于应用程序运行过程对目标API调用组合的调用,S401对应用程序所有目标API调用组合的查找、其调用控制的设置及其组合调用控制信息的记录是预先执行的动作。可以理解的是,在S401执行完成一次而为各目标API调用组合记录了组合调用控制信息之后,后续每次应用程序请求调用目标API调用组合时,仅需直接从S402开始执行,而无需再执行S401。
S402、在所述应用程序运行的过程中,以当前API调用组合表示所述应用程序当前请求连续调用一系列权限API组成的调用序列,响应于所述当前API调用组合的调用请求,读取所述当前API调用组合在所述应用程序下的组合调用控制信息,作为目标组合调用控制信息;其中,所述当前API调用组合为所述应用程序涉及的任意一个API调用组合。
具体实现时,应用程序在运行的过程中有时会连续请求调用一系列权限API,此时应用程序即是在请求调用目标API调用组合,而每当应用程序当前请求调用目标API调用组合的时候,以当前请求调用的目标API调用组合作为当前API调用组合,可以在预先为各目标API调用组合记录的组合调用控制信息中,查找出当前目标API调用组合的组合调用控制信息作为目标组合调用控制信息并进行读取,以便根据目标组合调用控制信息来确定是否允许应用程序调用当前API调用组合。也即,每当应用程序当前请求调用目标API调用组合时,可以执行S402,并根据S402读取到的目标组合调用控制信息来确定进入S403还是S404。
S403、响应于所述目标组合调用控制信息表示所述当前API调用组合已被设置为允许调用,允许所述应用程序调用所述当前API调用组合。
S404、响应于所述目标组合调用控制信息表示所述当前API调用组合已被设置禁止调用,拒绝所述应用程序调用所述当前API调用组合。
需要说明的是,对于预先被用户设置为禁止调用的目标API调用组合,在某些情况下用户可能会希望应用程序能够调用该目标API调用组合,为此,在一些实施方式中,在图4所示的实施方式基础上,还可以在应用程序运行过程中拒绝调用当前API调用组合时向用户进行提示,以便用户自主地去控制是否允许应用程序本次调用原本被拒绝的目标API调用组合。具体地,在图4所示的实施方式基础上,本实施例例如还可以包括:响应于所述目标组合调用控制信息表示所述当前API调用组合已被设置禁止调用,呈现所述当前API调用组合的禁用提示信息,其中,所述禁用提示信息用于提示所述当前API调用组合被禁用。进一步地,对于当前API调用组合,在向用户提示被禁用的基础上,考虑到用户在该提示下可能会对当前API调用组合的本次调用重新进行控制,为此,还可以在呈现当前API调用组合的禁用提示信息的界面上提供是否允许当前API调用组合的本次调用的设置操作方式,以便用户可以在查看到提示的情况下直接对当前API调用组合的本次调用重新设置,这不仅简化了用户的操作,也减少了终端设备需要响应用户交互的次数,从而减轻了终端设备的响应负担。
可以理解的是,在图4所示的实施方式中,通过对API调用组合整体进行调用控制,不仅可以避免用户针对API调用组合中每一个权限API都单独设置一次而简化了用户操作,还可以避免因用户识别不出API调用组合而导致一些原本需要被禁用的API调用组合没有被禁用的情况。
接着返回图3。
为了便于本领域技术人员更清楚地了解本实施例的具体应用方式,图5和图6示出了本实施例中控制权限API的一种具体应用示例。在该具体应用示例中,前述实施方式中对权限API的解析以及对目标API调用组合的查找可以是通过一个程序预分析器来实现。如图5所示,在安装软件之后,应用程序输入到程序预分析器中进行权限API的解析以及目标API调用组合的查找。然后,程序预分析器分别输出为调用权限列表和API调用关系组合,其中,调用权限列表中记录的是应用程序的所有权限API,API调用关系组合中记录的是应用程序涉及到的目标API调用组合。再后,调用权限列表与API调用关系组合被输入到用户交互模块,用户交互模块将其中的权限API和目标API调用组合提供给用户进行是否禁用的设置,并根据用户的设置操作记录各权限API的调用控制信息及各目标API调用组合的组合调用控制信息,以便应用程序运行时根据各权限API的调用控制信息及各目标API调用组合的组合调用控制信息来控制各权限API及各目标API调用组合的调用。如图6所示,在程序预分析器中,应用程序被输入到程序行为逻辑分析器进行解析。对于从应用程序中解析出的API,一方面,程序行为逻辑分析器根据API列表与权限对应关系集合来识别应用程序的权限API,并将识别出的权限API输出到权限API库,另一方面,程序行为逻辑分析器根据可疑行为逻辑集合来识别应用程序涉及的目标API调用组合,并将识别出的目标API调用组合记录到权限API行为路径库。在应用程序被程序行为逻辑分析器完全解析之后,一方面,权限API库中保存的即是应用程序的所有权限API,可以将这些权限API输出到图5所示的调用权限列表中,以通过用户交互模块完成权限API调用控制的设置,另一方面,权限API行为路径库中保存的即是应用程序涉及的所有目标API调用组合,可以将这些目标API调用组合输出到图5所示的API调用关系组合中,以通过用户交互模块完成目标API调用组合的调用控制的设置。
需要说明的是,图5与图6所示的上述具体应用示例仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用为适用的任何具体应用示例。
本实施例的技术方案,通过预先对应用程序中所有权限API进行解析,将应用程序中所有权限API一次性提供给用户进行调用控制的设置,并按照用户对各个权限API的调用控制设置为各个权限API记录调用控制信息,这样在应用程序运行过程中,每次调用权限API时就都可以根据预先为权限API记录的调用控制信息来对权限API的调用进行控制,而无需再分别针对每一次权限API的调用去询问用户是否禁止本次权限API的调用,这样用户在应用程序运行过程中也无需再为了实现对权限API的调用控制去与终端设备进行多次交互,从而简化了用户操作,并且也大大减少了终端对用户操作的响应次数,显著地减轻了终端设备的响应负担。
参见图7,示出了本申请中API的控制设备一实施例的结构图。在本实施例中,所述设备例如具体可以包括:
读取模块701,用于在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;
允许模块702,用于响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API;
拒绝模块703,用于响应于所述调用控制信息表示所述API已被设置禁止调用,拒绝所述应用程序调用所述API。
可选的,在本实施例的一些实施方式中,所述API对象例如可以为所述应用程序单一调用的API。
可选的,在本实施例的另一些实施方式中,所述API对象例如可以为所述应用程序按照调用序列连续调用多个API组成的API组合。
可选的,在本实施例的又一些实施方式中,所述设备例如还可以包括:
第一呈现模块,用于响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。
可选的,在本实施例的又一些实施方式中,所述设备例如还可以包括:
解析模块,用于响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用;
第二呈现模块,用于呈现所述API对象的描述信息;
记录模块,用于响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
可选的,在本实施例的又一些实施方式中,
所述解析模块,具体用于通过预设的API对象与权限间对应关系,解析所述应用程序涉及所述API对象的调用。
可选的,在本实施例的又一些实施方式中,所述设备例如还可以包括:
查找模块,用于响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找;
第三呈现模块,用于对查找不到的自定义API进行呈现。
本实施例的技术方案,对于需要调用权限控制的API对象来说,用户可以一次性对应用程序中所有API对象进行调用控制的设置,而在应用程序运行过程中,每一次调用API对象时都可以根据预先记录的调用控制信息来对API对象的调用进行控制,而无需再分别针对每一次API对象的调用去询问用户是否禁止本次API对象的调用,这样用户在应用程序运行过程中也无需再为了实现对API对象的调用控制去与终端设备进行多次交互,从而简化了用户操作,并且也大大减少了终端对用户操作的响应次数,显著地减轻了终端设备的响应负担。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (14)

1.一种API的控制方法,其特征在于,包括:
在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;
响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API对象;
响应于所述调用控制信息表示所述API对象已被设置禁止调用,拒绝所述应用程序调用所述API对象。
2.根据权利要求1所述的方法,其特征在于,所述API对象为所述应用程序单一调用的API。
3.根据权利要求1所述的方法,其特征在于,所述API对象为所述应用程序按照调用序列连续调用多个API组成的API组合。
4.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。
5.根据权利要求1所述的方法,其特征在于,还包括:
响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用,呈现所述API对象的描述信息;
响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
6.根据权利要求5所述的方法,其特征在于,所述解析所述应用程序涉及所述API对象的调用具体是通过预设的API对象与权限间对应关系来实现的。
7.根据权利要求5所述的方法,其特征在于,还包括:
响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找,并对查找不到的自定义API进行呈现。
8.一种API的控制设备,其特征在于,包括:
读取模块,用于在应用程序运行的过程中,响应于应用程序对API对象的调用请求,读取所述应用程序对所述API对象的调用控制信息;
允许模块,用于响应于所述调用控制信息表示所述API对象已被设置为允许调用,允许所述应用程序调用所述API;
拒绝模块,用于响应于所述调用控制信息表示所述API已被设置禁止调用,拒绝所述应用程序调用所述API。
9.根据权利要求8所述的设备,其特征在于,所述API对象为所述应用程序单一调用的API。
10.根据权利要求8所述的设备,其特征在于,所述API对象为所述应用程序按照调用序列连续调用多个API组成的API组合。
11.根据权利要求8所述的设备,其特征在于,还包括:
第一呈现模块,用于响应于所述调用控制信息表示所述API对象已被设置禁止调用,呈现所述API对象的禁用提示信息,其中,所述禁用提示信息用于提示所述API对象被禁用。
12.根据权利要求8所述的设备,其特征在于,还包括:
解析模块,用于响应于对所述应用程序的API调用控制的设置指令,解析所述应用程序涉及所述API对象的调用;
第二呈现模块,用于呈现所述API对象的描述信息;
记录模块,用于响应于对所述API的调用控制的设置操作,记录所述API对象的调用控制信息。
13.根据权利要求12所述的设备,其特征在于,所述解析模块,具体用于通过预设的API对象与权限间对应关系,解析所述应用程序涉及所述API对象的调用。
14.根据权利要求12所述的设备,其特征在于,还包括:
查找模块,用于响应于解析到所述应用程序涉及调用的所有API对象,以所述应用程序自定义的API作为自定义API,在解析到的所有API对象中对各个自定义API进行查找;
第三呈现模块,用于对查找不到的自定义API进行呈现。
CN201510641900.9A 2015-09-30 2015-09-30 一种api的控制方法和设备 Pending CN106557309A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510641900.9A CN106557309A (zh) 2015-09-30 2015-09-30 一种api的控制方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510641900.9A CN106557309A (zh) 2015-09-30 2015-09-30 一种api的控制方法和设备

Publications (1)

Publication Number Publication Date
CN106557309A true CN106557309A (zh) 2017-04-05

Family

ID=58417804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510641900.9A Pending CN106557309A (zh) 2015-09-30 2015-09-30 一种api的控制方法和设备

Country Status (1)

Country Link
CN (1) CN106557309A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021802A (zh) * 2017-10-24 2018-05-11 努比亚技术有限公司 一种系统资源访问控制方法、终端及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819715A (zh) * 2012-08-15 2012-12-12 腾讯科技(深圳)有限公司 Api监控方法和装置
CN103593238A (zh) * 2012-08-16 2014-02-19 腾讯科技(深圳)有限公司 控制应用程序编程接口调用的方法及装置
CN103761472A (zh) * 2014-02-21 2014-04-30 北京奇虎科技有限公司 基于智能终端设备的应用程序访问方法与装置
US20140366011A1 (en) * 2013-06-07 2014-12-11 Microsoft Corporation Api lifecycle platform and version management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102819715A (zh) * 2012-08-15 2012-12-12 腾讯科技(深圳)有限公司 Api监控方法和装置
CN103593238A (zh) * 2012-08-16 2014-02-19 腾讯科技(深圳)有限公司 控制应用程序编程接口调用的方法及装置
US20140366011A1 (en) * 2013-06-07 2014-12-11 Microsoft Corporation Api lifecycle platform and version management
CN103761472A (zh) * 2014-02-21 2014-04-30 北京奇虎科技有限公司 基于智能终端设备的应用程序访问方法与装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021802A (zh) * 2017-10-24 2018-05-11 努比亚技术有限公司 一种系统资源访问控制方法、终端及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN110310205B (zh) 一种区块链数据监控方法、装置、设备和介质
US11102245B2 (en) Deception using screen capture
US11743296B2 (en) Secure network device management in a telecommunications network
CN109831419A (zh) shell程序权限的确定方法及装置
CN103778384A (zh) 一种基于身份认证的虚拟终端安全环境的保护方法及系统
CN103488918B (zh) 智能终端应用加密方法及装置
CN108469972B (zh) 支持web页面中显示多窗口的方法和装置
CN106790001A (zh) 基于统一界面的多系统角色权限管理方法及系统
CN102667712A (zh) 用于同时定义和实行访问控制和完整性策略的系统、方法和装置
US10116664B2 (en) Authorization policy for group-centric secure information sharing
CN104036200B (zh) 基于指纹标记的数据分类及加密方法、系统及移动终端
CN109190411A (zh) 一种操作系统的主动安全防护方法、系统及终端设备
CN106873958A (zh) 一种应用编程接口的调用方法及装置
CN103971059A (zh) 一种Cookie本地存储与使用方法
CN115238247A (zh) 基于零信任数据访问控制系统的数据处理方法
CN104598401A (zh) 国产平台外围设备管控系统及其管控方法
CN106557309A (zh) 一种api的控制方法和设备
CN103873439A (zh) 一种联网的方法及电子设备
CN107391987A (zh) 基于生物特征识别的应用保护方法、装置及电子设备
Singh et al. A role-based administrative model for administration of heterogeneous access control policies and its security analysis
CN107885489A (zh) 一种快速检测实名登记数据指标的方法和系统
CN106066967A (zh) 一种权限设置方法及装置
CN107294903A (zh) 一种网络地址访问方法及装置
CN114741727A (zh) 数据发送方法和装置
CN107633174A (zh) 一种用户输入管理方法及装置、终端

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170405