一种应用程序的权限管控方法和电子设备与流程

文档序号:36414956发布日期:2023-12-19 13:17阅读:53来源:国知局
一种应用程序的权限管控方法和电子设备与流程

本技术涉及终端领域,尤其涉及一种应用程序的权限管控方法和电子设备。


背景技术:

1、目前的电子设备中可以安装各种应用程序(application,app)以满足用户需求,app中可以内嵌多种第三方软件开发工具包(software development kit,sdk)以降低app的开发成本和运营成本。app在安装或运行的过程中,可以向电子设备申请权限并通过鉴权后,app通过调用应用程序编程接口(application programming interface,api)实现app的相关功能。例如app向电子设备申请联网权限,在电子设备向app授予联网权限并鉴定app具有联网权限后,app通过联网权限调用api以实现联网功能。

2、相关方案中的权限管控机制是以app为管控粒度,即电子设备向app授予权限并鉴定app具有权限后,第三方sdk也会具有与app相同的权限,第三方sdk会借助app的权限调用api,可能会降低app的安全性,影响用户体验。


技术实现思路

1、本技术提供一种应用程序的权限管控方法和电子设备,可以避免sdk借助app的权限调用api,从而降低了app潜在的安全风险,提升了app的安全性,提升了用户体验。

2、第一方面,提供了一种应用程序的权限管控方法,该方法可以响应于对app(第一app)的触发事件,首先确定调用请求是由sdk生成,然后获取app的上下文参数、待鉴定的权限参数(第一权限参数)和sdk(第一sdk)的包名,最后根据上述获取的数据,确定鉴权结果,鉴权结果用于指示api(第一api)允许或禁止被sdk调用,在鉴权结果指示api允许被sdk调用的情况下,sdk调用api,在鉴权结果指示api禁止被sdk调用的情况下,禁止sdk调用api。

3、本技术实施例,相对于以app为管控粒度的权限管控方案,只能鉴定api允许或禁止被app调用,可以确定调用请求是由sdk生成的,以及确定的鉴权结果用于指示api允许或禁止被sdk调用,也就是说,本技术实施例可以鉴定app中的sdk是否可以调用api,提升了用户体验。

4、并且,在鉴权结果指示api允许被sdk调用的情况下,sdk调用api,在鉴权结果指示api禁止被sdk调用的情况下,禁止sdk调用api,可以根据鉴定结果管控app中的sdk,其中,在鉴权结果指示api禁止被sdk调用的情况下,禁止sdk调用api,避免了sdk借助app的权限调用api,降低了app潜在的安全风险,提升了app的安全性,提升了用户体验。

5、结合第一方面,在第一方面的某些实现方式中,根据第一app的上下文参数、第一权限参数和第一sdk的包名,确定鉴权结果,包括:

6、根据第一app的上下文参数和第一权限参数,确定第一授权结果,第一授权结果用于指示第一app被授予第一权限;根据第一授权结果和第一sdk的包名,确定第二授权结果,以根据第二授权结果确定鉴权结果,第二授权结果用于指示第一sdk是否被授予第一权限。

7、本技术实施例,可以根据第一app的上下文参数和第一权限参数,确定用于指示第一app被授予第一权限的第一授权结果,那么,根据第一授权结果,在第一app发起调用请求的情况下,第一app可以基于第一权限调用第一api;随后,根据第一授权结果和第一sdk的包名,确定用于指示第一sdk是否被授予第一权限的第二授权结果,以根据第二授权结果确定用于指示第一api允许或禁止被第一sdk调用的鉴权结果,即在第一app被授予第一权限的情况下,可以确定第一sdk是否被授予第一权限,在确定第一sdk未被授予第一权限的情况下,确定的鉴权结果用于指示第一api禁止被第一sdk调用,也就是说,本技术可以在第一app基于第一权限调用第一api时,禁止第一app中的第一sdk调用第一api,相对于相关方案中app基于权限调用api时,app中的sdk也会基于相同权限调用api,可以提升用户体验。

8、结合第一方面,在第一方面的某些实现方式中,电子设备包括框架层,框架层包括权限管理模块,权限管理模块配置用于记载授权结果的树结构,树结构用于指示用户状态、用户身份证明状态、权限状态和sdk状态的层级关系,用户状态为第一层级,第一层级用于指示树结构,用户身份证明状态为第二层级,第二层级用于指示至少一个app的用户身份证明,至少一个app包括第一app,权限状态为第三层级,第三层级包括第一候选授权结果,第一候选授权结果用于指示至少一个权限参数是否被授权的授权结果,至少一个权限参数包括至少一个app中每个app对应的权限参数,至少一个权限参数包括第一权限参数,sdk状态为第四层级,第四层级包括第二候选授权结果,第二候选授权结果用于指示至少一个sdk是否被授权的授权结果,至少一个sdk包括至少一个权限参数中每个权限参数对应的sdk,至少一个sdk包括第一sdk。

9、本技术实施例,权限管理模块中配置的树结构具有四层层级关系,第四层级中包括用于指示至少一个sdk是否被授权的第二候选授权结果,相对于相关方案中具有三层层级关系的树结构,本技术可以在第四层级中确定sdk是否被授权,并且,通过本技术提供的树结构,可以使电子设备快速、便捷的确定sdk是否被授权,以尽快禁止或允许sdk调用api,降低用户的感知程度,提升用户体验。

10、结合第一方面,在第一方面的某些实现方式中,根据第一app的上下文参数和第一权限参数,确定第一授权结果,包括:

11、根据第一app的用户标识,确定用户状态,用户状态用于定位树结构的第一层级,第一app的上下文参数用于指示第一app的用户标识;根据第一app的用户标识和第一app的包名,确定第一app的用户身份证明,第一app的上下文参数还用于指示第一app的包名;在第二层级的至少一个app的用户身份证明中确定第一app的用户身份证明;根据第一权限参数和第一app的用户身份证明,在第三层级的第一候选授权结果中确定第一授权结果;

12、根据第一授权结果和第一sdk的包名,确定第二授权结果,以根据第二授权结果确定鉴权结果,包括:根据第一授权结果和第一sdk的包名,在第四层级的第二候选授权结果中确定第二授权结果,以根据第二授权结果确定鉴权结果。

13、本技术实施例,可以依据用户标识、第一app的包名、第一权限参数和第一sdk的包名等数据在第一层级、第二层级、第三层级和第四层级中通过逐层确定的方式确定第二授权结果,可以提高确定第二授权结果的速度,进而提高了根据第二授权结果确定的鉴权结果的速度,提升了电子设备的运行速度。

14、结合第一方面,在第一方面的某些实现方式中,该方法还包括:

15、根据第一授权结果和第一sdk的包名,在第四层级的第二候选授权结果中未查询到第二授权结果的情况下,或者根据第一授权结果和第一sdk的包名,在第四层级的第二候选授权结果中查询到第二授权结果为每次询问的情况下,弹窗询问用户是否对第一sdk授予第一权限;根据用户选择将用户的第二授权结果记载在第四层级,用户选择包括允许、不允许和每次询问中的一种。

16、本技术实施例,可以在第四层级中未查询到第二授权结果的情况下,或者在第四层级中查询到第二授权结果,但是第二授权结果为每次询问的情况下,通过弹窗询问的方式,询问用户是否对第一sdk授予第一权限,并根据用户选择将第二授权结果记载在第四层级,可以使用户主动管控sdk的权限,由用户决定是否授予sdk权限,这样,避免了第三方sdk在用户无感知的情况下,借助app权限调用api,提升了用户体验。

17、结合第一方面,在第一方面的某些实现方式中,确定基于第一软件开发工具包sdk生成的调用请求,包括:

18、获取sdk列表和第一api的调用栈,sdk列表中包括至少一个sdk的包名,至少一个sdk的包名中包括第一sdk的包名,至少一个sdk为具有发起敏感行为的能力的sdk和/或存在安全漏洞的sdk;在第一api的调用栈中查询到存在sdk列表中的第一sdk的包名的情况下,确定基于第一sdk生成的调用请求。

19、本技术实施例,由于可以在第一api的调用栈中查询是否存在sdk列表(sdk列表包括具有发起敏感行为的能力的sdk的包名和/或存在安全漏洞的sdk的包名)中的第一sdk的包名,以在查询到存在sdk列表中的第一sdk的包名的情况下,确定基于第一sdk生成的调用请求,从而确定生成调用请求的第一sdk具有发起敏感行为的能力和/或存在安全漏洞,在一种场景中,通过本技术实施例可以禁止具有发起敏感行为能力和/或存在安全漏洞的第一sdk调用第一api,实现对发起敏感行为和/或存在安全漏洞的第一sdk进行权限管控,提升了app的安全性,提升了用户体验。

20、结合第一方面,在第一方面的某些实现方式中,在根据调用请求,获取第一app的上下文参数、第一权限参数和第一sdk的包名之前,方法还包括:

21、获取第一app的包名和对应关系,对应关系用于指示n个app的包名和n个管控结果的对应关系,一个app的包名对应一个管控结果,一个管控结果用于指示一个app是否被允许以sdk为管控粒度进行权限管控,n个app包括第一app,n为大于或等于1的整数;根据第一app的包名和对应关系,确定第一管控结果,第一管控结果用于指示第一app被允许以sdk为管控粒度进行权限管控。

22、结合第一方面,在第一方面的某些实现方式中,根据第一app的包名和对应关系,确定第一管控结果,包括:

23、根据第一app的包名和对应关系,在对应关系中查询第一app的包名对应的管控结果;

24、在查询到第一app的包名对应的管控结果为第一app被允许以sdk为管控粒度进行权限管控的情况下,确定第一管控结果。

25、结合第一方面,在第一方面的某些实现方式中,该方法还包括:

26、在对应关系中查询到不存在第一app的包名对应的管控结果的情况下,或者在对应关系中查询到第一app的包名对应的管控结果为第二管控结果的情况下,弹窗询问用户是否允许对第一app以sdk为管控粒度进行权限管控,并将询问结果记载在对应关系,第二管控结果用于指示第一app未被允许以sdk为管控粒度进行权限管控。

27、结合第一方面,在第一方面的某些实现方式中,对应关系保存在系统设置的数据库中。

28、结合第一方面,在第一方面的某些实现方式中,电子设备包括框架层,框架层包括鉴权模块、活动管理模块和权限管理模块,该方法还包括:

29、鉴权模块向活动管理模块发送第一app的上下文参数、第一权限参数和第一sdk的包名;活动管理模块向权限管理模块发送第一app的上下文参数、第一权限参数和第一sdk的包名;权限管理模块根据第一app的上下文参数和第一权限参数,确定第一授权结果;权限管理模块根据第一授权结果和第一sdk的包名,确定第二授权结果;权限管理模块向活动管理模块返回第二授权结果;活动管理模块向鉴权模块返回第二授权结果;鉴权模块根据第二授权结果确定鉴权结果。

30、第二方面,提供一种电子设备,所述电子设备用于执行上述第一方面提供的方法。具体地,所述电子设备可以包括用于执行上述第一方面中任一种可能实现方式的处理单元。

31、第三方面,提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或者多个计算机程序,所述一个或者多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行上述第一方面中任一项可能的实现中的方法。

32、第四方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面所述的方法。

33、第五方面,提供一种芯片,包括存储器,用于存储指令;还包括处理器,用于从存储器中调用并运行指令,使得安装有芯片的电子设备执行上述第一方面所述的方法。

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