合规性审核失败原因确定方法、装置、计算设备和介质

阅读: 评论:0

著录项
  • CN202211448602.4
  • 20221118
  • CN115757136A
  • 20230307
  • 北京声智科技有限公司
  • 李良斌
  • G06F11/36
  • G06F11/36

  • 北京市海淀区北清路81号院一区1号楼6层601
  • 北京(11)
  • 北京开阳星知识产权代理有限公司
  • 张通
摘要
本公开实施例提供一种合规性审核失败原因确定方法、装置、计算设备和介质。合规性审核失败原因确定方法包括:采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序包括的目标已知接口,判断待上线程序是否注册使用目标已知接口必须的权限申请;在待上线程序未注册目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。采用本公开实施例提供的方案,待上线程序的开发商和审核者能够在程序上线审核之前,对待上线程序进行检查,以排除因为没有对应的权限注册而造成合规审核失败的问题。
权利要求

1.一种合规性审核失败原因确定方法,其特征在于,包括:

采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,所述已知接口为有对应权限才可使用的接口,所述判别数据集还包括所述为使用所述已知接口必须注册的权限申请;

判断所述待上线程序是否注册使用所述目标已知接口必须的权限申请;

在所述待上线程序未注册所述目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

2.根据权利要求1所述的方法,其特征在于,

在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

获取所述已知接口的二进制代码;

采用所述已知接口的二进制代码对所述第三方代码进行过滤,确定所述第三方代码包括的目标二进制代码;

将所述目标二进制代码对应的已知接口作为所述目标已知接口。

5.根据权利要求2-4任一项所述的方法,其特征在于,

在所述第三方代码开源的情况下,所述方法还包括:获取所述第三方代码的源代码;

对所述第三方代码的源代码进行接口提取,得到所述第三方代码包含的函数接口。

3.根据权利要求1所述的方法,其特征在于,

在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

运行所述第三方代码并追踪所述第三方代码调用的底层函数;

采用底层函数的函数接口与所述判别数据集中的已知接口进行比对,将比对得到的已知接口作为所述目标已知接口。

4.根据权利要求1所述的方法,其特征在于,

在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

对所述第三方代码进行反编译,确定所述第三方代码包含的函数接口;

采用所述第三方代码包含的函数接口与所述判别数据集中的已知接口进行比对,确定所述第三方代码包括的目标已知接口。

6.根据权利要求1-4任一项所述的方法,其特征在于,在确定未进行权限申请注册作为合规性审核失败的原因之后,所述方法还包括:

输出所述原因和所述目标已知接口的信息。

7.根据权利要求1-4任一项所述的方法,所述判别数据集还包括所述已知接口的使用方式;

在所述待上线程序注册所述权限申请的情况下,所述方法还包括:

基于所述目标已知接口的使用方式,判断所述待上线程序使用所述目标已知接口的方式是否合法;

在所述待上线程序使用目标已知接口的方式不合法的情况下,将所述待上线程序不合法使用目标已知接口作为合规性审核失败的原因。

8.一种合规性审核失败原因确定装置,其特征在于,包括:

接口辨识单元,用于采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,所述已知接口为有对应权限才可使用的接口,所述判别数据集还包括所述为使用所述已知接口必须注册的权限申请;

权限查询单元,用于判断所述待上线程序是否注册使用所述目标已知接口必须的权限申请;

结果确定单元,用于在所述待上线程序未注册所述目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

9.一种计算设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序;

所述计算机程序在被所述处理器加载时,使所述处理器执行如权利要求1-7任一项所述的合规性审核失败原因确定方法。

10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现如权利要求1-8任一项所述的合规性审核失败原因确定方法。

说明书
技术领域

本公开涉及数据处理技术领域,具体涉及一种合规性审核失败原因确定方法、装置、计算设备和存储介质。

在应用程序上线之前,平台管理方会对应用程序进行合规性审查。合规性审查的重要内容之一是审查应用程序是否申请注册调用各种涉及隐私的底层资源的权限。在程序开发过程中,由于编程人员相互协作沟通不充分,并且需要调用涉及隐私的底层资源的函数接口数量众多,某些函数接口所需的权限申请注册被遗漏,造成应用程序的合规性审查失败。

为解决由于权限注册遗漏造成的合规性审查失败,在上线审核前,编程人员需要人工阅读程序代码,以核验是否对所有需要调用涉及隐私的底层资源对应的权限进行申请注册。但是由于程序代码行数和函数接口类型很多,以及检查编程人员的经验有限,前述方法的可靠性和经济性并不高。

为了解决上述技术问题,本公开实施例提供一种合规性审核失败原因确定方法、装置、计算设备和介质。

第一方面,本公开实施例提供一种合规性审核失败原因确定方法,包括:

采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,所述已知接口为有对应权限才可使用的接口,所述判别数据集还包括所述为使用所述已知接口必须注册的权限申请;

判断所述待上线程序是否注册使用所述目标已知接口必须的权限申请;

在所述待上线程序未注册所述目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

可选的,在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

获取所述已知接口的二进制代码;

采用所述已知接口的二进制代码对所述第三方代码进行过滤,确定所述第三方代码包括的目标二进制代码;

将所述目标二进制代码对应的已知接口作为所述目标已知接口。

可选的,在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

运行所述第三方代码并追踪所述第三方代码调用的底层函数;

采用底层函数的函数接口与所述判别数据集中的已知接口进行比对,将比对得到的已知接口作为所述目标已知接口。

可选的,在所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口之前,所述方法还包括:判断所述待上线程序是否包括第三方代码;

在所述待上线程序包括所述第三方代码的情况下,判断所述第三方代码是否开源;

在所述第三方代码不开源的情况下,所述采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,包括:

对所述第三方代码进行反编译,确定所述第三方代码包含的函数接口;

采用所述第三方代码包含的函数接口与所述判别数据集中的已知接口进行比对,确定所述第三方代码包括的目标已知接口。

可选的,在所述第三方代码开源的情况下,所述方法还包括:获取所述第三方代码的源代码;

对所述第三方代码的源代码进行接口提取,得到所述第三方代码包含的函数接口。

可选的,在确定未进行权限申请注册作为合规性审核失败的原因之后,所述方法还包括:

输出所述原因和所述目标已知接口的信息。

可选的,所述判别数据集还包括所述已知接口的使用方式;

在所述待上线程序注册所述权限申请的情况下,所述方法还包括:

基于所述目标已知接口的使用方式,判断所述待上线程序使用所述目标已知接口的方式是否合法;

在所述待上线程序使用目标已知接口的方式不合法的情况下,将所述待上线程序不合法使用目标已知接口作为合规性审核失败的原因。

第二方面,本公开实施例提供一种合规性审核失败原因确定装置,包括:

接口辨识单元,用于采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定所述待上线程序包括的目标已知接口,所述已知接口为有对应权限才可使用的接口,所述判别数据集还包括所述为使用所述已知接口必须注册的权限申请;

权限查询单元,用于判断所述待上线程序是否注册使用所述目标已知接口必须的权限申请;

结果确定单元,用于在所述待上线程序未注册所述目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

第三方面,本公开实施例提供一种计算设备,包括处理器和存储器,所述存储器用于存储计算机程序;所述计算机程序在被所述处理器加载时,使所述处理器执行如前所述的合规性审核失败原因确定方法。

第四方面,本公开实施例提供一种计算机可读存储介质,所述存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现如前所述的合规性审核失败原因确定方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

采用本公开实施例提供的方案,通过采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序是否注册使用目标已知接口必须的权限申请,并在没有前述必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。采用本公开实施例提供的方案,待上线程序的开发商和审核者能够在程序上线审核之前,对待上线程序进行检查,以排除因为没有对应的权限注册而造成合规审核失败的问题。

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图,其中:

图1是本公开实施例提供的合规性审核失败原因确定流程图;

图2是本公开另一些实施例提供的合规性审核失败原因确定方法流程图;

图3是本公开再一些实施例提供的合规性审核失败原因确定方法流程图;

图4是本公开再一些实施例提供的合规性审核失败原因确定方法流程图;

图5是本公开实施例提供的合规性审核失败原因确定装置的结构示意图;

图6是本公开一些实施例提供的计算设备的结构示意图。

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本公开实施例提供一种合规性审核失败原因确定方法,用于识别出待上线程序没有申请注册、但是内部函数接口依申请才能调用的权限,进而提示开发人员能够基于前述原因对待上线程序进行适应性修改,避免待上线程序上由于前述原因而没有通过审核的问题。

本公开实施例提供的合规性审核失败原因确定可以由计算设备执行,计算设备可以是服务器,也可以是终端设备。在实际实施中,因为只有应用程序代码的开发者或者能够获得应用程序源代码的审核者才能够确定待上线程序的源代码,所以多由开发者和前述能够获取源代码的审核者执行本公开实施例提供的合规性审核失败原因确定方法。

图1是本公开实施例提供的合规性审核失败原因确定流程图。如图1所示,本公开实施例提供的审核方法包括S110-S130。

S110:采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序包括的目标已知接口。

判别数据集是采用历史检查过程中获取到的已知接口构建的数据集合,其包括含了大量的已知接口。

前述的已知接口是有对应权限才可使用的接口。例如,前述已知接口可以是查看相册,调用麦克风或者相机,查看位置信息、查看日历、修改蓝牙等网络连接方式的接口。前述的已知接口使用时会获得用户的各种隐私信息,出于隐私安全性考虑仅在用户授权的情况下应用程序才能使用对应的接口。

目标已知接口是确定的待上线程序中包括的已知接口。本公开实施例中,计算设备可以将待上线程序包括的函数接口与已知接口进行比对,确定待上线程序包括的函数接口是否与已知接口相同。如果二者相同,则确定待上线程序包括前述的已知接口,前述的已知接口被认定为目标已知接口。

本公开实施例中,判别数据集中除了包括前述的已知接口外,还包括已知为使用已知接口必须注册的权限申请。例如,某一已知接口是启动相机拍照的接口,则必须注册的权限申请为调用相机权限的申请。

在具体实施中,判别数据集可以存储各个已知接口,以及各个已知接口与对应的权限申请的对应关系。例如,在一个具体实施例中,判别数据集可以采用如下的方式存储已知接口和对应的权限申请:{[函数接口1,函数接口2,函数接口3,权限申请1],[函数接口4,函数接口5,函数接口6,权限申请2],……,[函数接口m,函数接口n,函数接口o,权限申请x]}。

S120:判断待上线程序是否注册使用目标已知接口必须的权限申请;若否,执行S130。

S130:确定未进行权限申请注册为合规性审核失败的原因。

具体实施中,如果计算设备确定待上线程序包括的函数接口为目标已知接口,此时计算设备会读取待上线程序的权限申请数据段,并确定权限申请数据端是否有使用目标已知接口必须注册的权限申请。具体实施中,计算设备可以将目标已知接口对应的权限申请字段与待上线程序的权限申请数据段进行比对,确定待上线程序是否注册使用目标已知接口必须的权限申请。

如果前述的判断为否,则确定待上线程序并没有注册使用目标已知接口必须的权限申请。也就是说,待上线程序在调用目标已知接口时并不会申请权限,而可能是私下进行,也就是说待上线程序具有违规收集用户隐私等敏感信息的可能性。上线平台为保证用户私密性和安全性,在检测到前述没有注册权限申请的已知接口的情况下会判定待上线程序不合规。为避免合规性审核失败,本公开实施例中将未进行权限申请注册作为合规性审核失败的原因。

采用本公开实施例提供的方法,通过采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序是否注册使用目标已知接口必须的权限申请,并在没有前述必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。采用本公开实施例提供的方法,待上线程序的开发商和审核者能够在程序上线审核之前,对待上线程序进行检查,以排除因为没有对应的权限注册而造成合规审核失败的问题。

图2是本公开另一些实施例提供的合规性审核失败原因确定方法流程图。如图2所示,在一些实施例中,计算设备采用S210-S270将未进行权限申请注册作为合规性审核失败的原因。

S210:判断待上线程序是否包括第三方代码;若是,执行S220。

S220:判断第三方代码是否开源;若否,执行S230。

在软件开发实际实施中,基于成本和业务流程的考虑,待上线程序的开发商会集成第三方开发商开发的第三方代码,实现待上线程序的二次开发。例如,在一些待上线程序中需要有导航功能,而由于导航功能的复杂性,也仅有特定的几家软件厂商开发此类产品和底层应用,大部分的软件开发商多是直接调用其他软件厂商开发的导航接口模块。

处于商业保密的考虑,第三方开发商编写的第三方代码并不开源,也就是说待上线程序的开发者仅能获取到二进制的第三方代码,而无法获取到第三方代码的源码程序。在此情况下,待上线程序的开发者可能并不能获取到第三方代码中包含的函数接口使用时必须注册的权限申请。

为了解决此问题,本公开实施例中,在获得待上线程序后,首先会判断待上线程序是否包括第三方代码,以及在判定待上线程序包括第三方代码的情况下,判断第三方代码是否开源。具体实施例中,计算设备可以根据用户的输入或者待上线程序中的属性信息确定待上线程序是否包括第三方代码,以及第三方代码在已经二进制编码的待上线程序中的位置。

如果判定第三方代码开源,则计算设备可以根据用户输入的信息确定地第三方代码对应的源程序代码。而如果第三方代码并不开源,则也就无法获取到源程序代码。

S230:获取判别数据集中已知接口的二进制代码。

S240:采用已知接口的二进制代码对第三方代码进行过滤,确定第三方代码包括的目标二进制代码。

S250:将目标二进制代码对应的已知接口作为目标已知接口。

为了在第三方代码并不开源的情况下仍然识别到第三方代码中是否包括已知接口,计算设备采用S230-S250的方法。

计算设备首先获取到判别数据集中已知接口的二进制代码。在一些具体实施中,判别数据集可以存储各个已知接口的二进制代码,计算设备通过查判别数据集获得对应的二进制代码。在另外一些具体实施中,计算设备可以采用编译程序对已知接口进行即时编译得到已知接口的二进制代码。

在得到已知接口的二进制代码后,计算设备采用已知接口的二进制代码对第三方代码进行过滤,确定第三方代码是否包括某一二进制代码。采用已知接口的二进制代码对第三方代码进行过滤,是采用已知接口的二进制代码对第三方代码进行逐位移动的匹配,以识别出已知接口是否包括已知接口的二进制代码。

在第三方代码包括某一二进制代码的情况下,计算设备将此二进制代码作为目标二进制代码,并将目标二进制代码对应的已知接口作为目标已知接口。

S260:判断待上线程序是否注册使用目标已知接口必须的权限申请;若否,执行S270。

S270:将未进行权限申请注册作为合规性审核失败的原因。

S260-S270与前文实施例中的S120-S130相同,此处不再复述,具体可以参加前文表述。

采用本公开实施例提供的方法,计算设备利用已知接口的二进制代码容易获取的优点,利用已知接口的二进制代码对第三方代码进行过滤,确定第三方代码中包括的目标已知接口,继而采用后续过程确定为进行权限注册是否为合规性失败的原因。

图3是本公开再一些实施例提供的合规性审核失败原因确定方法流程图。如图3所示,在一些实施例中,计算设备采用S310-S360将未进行权限申请注册作为合规性审核失败的原因。

S310:判断待上线程序是否包括第三方代码;若是,执行S320。

S320:判断第三方代码是否开源;若否,执行S330。

前述的S310-S320的执行过程与前文S210-S220相同,此处不再复述,具体可以参见前文表述。

S330:运行第三方代码并追踪第三方代码调用的底层函数。

S340:采用底层函数的函数接口与判别数据集中的已知接口进行比对,将比对得到的已知接口作为目标已知接口。

运行第三方代码是使得第三方代码被计算设备实例化为进程或线程,进而被处理器执行。第三方代码执行时需要调用系统资源,而系统资源是由底层函数提供,因此第三方代码必须通过调用底层函数才能实现系统资源的调用。

在一些应用中,第三方代码调用的底层函数应当是在有相应的权限下才能调用的函数,但是为了测试用,计算设备并没有对第三方代码调用底层函数的权限进行显示,也就是说此时第三方代码可以实现底层函数的调用,并使得底层函数被执行。在计算设备执行底层函数时,其可以采用诸如内存快照等方法获取到底层函数的函数接口。

在获取到底层函数的函数接口后,计算设备将底层函数的函数接口与判别数据集中的已知接口进行一一比对,进而确定底层函数是否包括已知接口。在确定底层函数包括已知接口的情况下,计算设备将对比得到的已知接口作为目标已知接口。

S350:判断待上线程序是否注册使用目标已知接口必须的权限申请;若否,执行S360。

S360:将未进行权限申请注册作为合规性审核失败的原因。

S350-S360与前文实施例中的S120-S130相同,此处不再复述,具体可以参加前文表述。

采用本公开实施例提供方法,计算设备在第三方代码不开源的情况下,通过实际运行第三方代码的方法获取第三方代码中包括的底层函数。由于只有底层函数才能真正调用系统资源,底层函数的使用才需要对应的申请权限,采用本公开实施例提供的方法无需对第三方代码进行反向编译和筛选操作,仅需要监听第三方代码的执行过程就获取了底层函数的函数接口,并将其与已知接口进行比对确定是否为目标已知接口,继而执行后续确定合规性审核失败的原因识别的执行。

图4是本公开再一些实施例提供的合规性审核失败原因确定方法流程图。如图4所示,在一些实施例中,确定第三方代码是否包括违规对象的方法包括S410-S4N0。

S410:判断待上线程序是否包括第三方代码;若是,执行S420。

S420:判断第三方代码是否开源;若否,执行S430。

前述的S410-S420的执行过程与前文S410-S420相同,此处不再复述,具体可以参见前文表述。

S430:对第三方代码进行反编译,确定第三方代码包含的函数接口。

S440:采用第三方代码包含的函数接口与判别数据集中的已知接口进行比对,确定第三方代码包括的目标已知接口。

本实施例具体实施中,计算设备可以采用各种反编译软件对第三方代码进行反编译,确定第三方代码对应的反编译源代码。在得到反编译源代码后,可以对反编译源代码进行接口识别,确定第三方代码调用的底层函数的函数接口。

S450:判断待上线程序是否注册使用目标已知接口必须的权限申请;若否,执行S460。

S460:将未进行权限申请注册作为合规性审核失败的原因。

S450-S460与前文实施例中的S120-S130相同,此处不再复述,具体可以参加前文表述。

采用本公开实施例提供的方法,计算设备通过反编译方法获取第三方代码的源代码,并通过对源代码进行自动解读确定底层函数的函数接口,进而判定第三方代码是否包括目标已知接口。由于采用反编译方法使得开发者能够获得第三方代码的源代码,后续开发者能够根据源代码确定包括违规对象的源代码片段,进而能够针对性地修改第三方代码。

前述三个实施例均是在第三方代码不开源的情况下执行相应的操作。在另外一些实施例中,第三方代码也可以是开源代码。在此情况下,计算设备可以执行如下的S510-S520,得到第三方代码包含的函数接口。

S510:获取第三方代码的源代码。

S520:对第三方代码的源代码进行接口提取,得到第三方代码包含的函数接口。

具体实施中,计算设备可以识别源代码中具有接口函数特征的所有代码片段,并按照接口的类型对前述片段进行处理,确定第三方代码包括的函数接口。在执行前述的S510-S520之后,随后可以执行S110-S130,以确定合规性审核失败的原因。

当然,针对由待上线程序开发者自行开发的程序代码部分,也可以采用类似前述S510-S520的方法确定其中包括的函数接口,并执行S110-S130确定合规性审核失败的原因。

在本公开实施例中,在执行S130确定未进行权限申请注册作为合规性审核失败的原因之后,计算设备还可以输出原因,以提示开发者申请注册相应的权限。此外,在一些实施例中,计算设备还可以将目标已知接口的信息输出,以提示待上线程序的开发者真正造成合规性审核失败的函数接口,以使得开发者核查相应的权限申请注册是否为必须的。

在本公开的一些实施例中,判别数据集中除了包括使用已知接口必须注册的权限申请外,还包括已知接口的使用方式。对应的,在确定待上线程序注册使用已知接口必须祖册的权限后,计算设备还可以执行如下的S610-S620。

S610:基于目标已知接口的使用方式,判断待上线程序使用目标已知接口的方式是否合法;若否,执行S620。

S620:将待上线程序不合法使用目标已知接口作为合规性审核失败的原因。

具体的,计算设备可以加载待上线程序或者特定的程序模块,确定待上线程序使用目标已知接口的方式。实际应用中,待上线程序可以是使得计算设备长期调用目标已知接口,也就是长期获取目标已知接口提供的数据。但是,在大多数应用中,待上线程序并不应该长时间使用目标已知接口,判别数据集中已知接口的使用方式是在程序前台运行时使用。如此,可上线程序使用目标已知接口的方式并不合法,因此将待上线程序不合法使用目标椅子接口作为合规性审核失败的原因。

除了提供前述的合规性审核失败原因确定方法外,本公开实施例还提供一种合规性审核失败原因确定装置500。图5是本公开实施例提供的合规性审核失败原因确定装置500的结构示意图。如图5所示,合规性审核失败原因确定装置500包括接口辨识单元501、权限查询单元502以及结果确定单元503。

接口辨识单元501用于采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序包括的目标已知接口,已知接口为有对应权限才可使用的接口,判别数据集还包括为使用已知接口必须注册的权限申请;权限查询单元502用于判断待上线程序是否注册使用目标已知接口必须的权限申请;结果确定单元503用于在待上线程序未注册目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

在一些实施例中,合规性审核失败原因确定装置500还包括第三方代码特性识别单元,用于判断待上线程序是否包括第三方代码,以及在待上线程序包括第三方代码的情况下判断第三方代码是否开源。对应的,权限查询单元502包括二进制代码获取子单元、过滤子单元和目标接口确定子单元。二进制代码获取子单元用于在第三方代码特性识别单元确定第三方代码不开源的情况下,获取已知接口的二进制代码,过滤子单元用于采用已知接口的二进制代码对第三方代码进行过滤,确定第三方代码包括的目标二进制代码,目标接口确定子单元用于将目标二进制代码对应的已知接口作为目标已知接口。

在一些实施例中,合规性审核失败原因确定装置500还包括第三方代码特性识别单元,用于判断待上线程序是否包括第三方代码,以及在待上线程序包括第三方代码的情况下判断第三方代码是否开源。对应的,权限查询单元502包括代码运行子单元和比对子单元。代码运行子单元用于运行第三方代码并追踪第三方代码调用的底层函数;比对子单元用于采用底层函数的函数接口与判别数据集中的已知接口进行比对,将比对得到的已知接口作为目标已知接口。

在一些实施例中,合规性审核失败原因确定装置500还包括第三方代码特性识别单元,用于判断待上线程序是否包括第三方代码,以及在待上线程序包括第三方代码的情况下判断第三方代码是否开源。对应的,权限查询单元502包括反编译子单元和比对子单元。反编译子单元用于对第三方代码进行反编译,确定第三方代码包含的函数接口;比对子单元用于采用第三方代码包含的函数接口与判别数据集中的已知接口进行比对,确定第三方代码包括的目标已知接口。

在一些实施例中,在第三方代码开源的情况下,合规性审核失败原因确定装置500还包括源码获取单元和接口提取单元。源码获取单元用于获取第三方代码的源代码;接口提取单元用于对第三方代码的源代码进行接口提取,得到第三方代码包含的函数接口。

在一些实施例中,合规性审核失败原因确定装置500还包括结果输出单元。结果输出单元用于输出原因和目标已知接口的信息。

在一些实施例中,判别数据集还包括已知接口的使用方式;合规性审核失败原因确定装置500还包括使用合法性判断单元。使用合法性判断单元用于基于目标已知接口的使用方式,判断待上线程序使用目标已知接口的方式是否合法。结果确定单元503用于在待上线程序使用目标已知接口的方式不合法的情况下,将待上线程序不合法使用目标已知接口作为合规性审核失败的原因。

本公开实施例还提供一种用于实现前述合规性审核失败原因确定方法的计算设备。图6是本公开一些实施例提供的计算设备的结构示意图。下面具体参考图6,其示出了适于用来实现本公开实施例中的计算设备600的结构示意图。图6示出的计算设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,计算设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器ROM602中的程序或者从存储装置608加载到随机访问存储器RAM603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有计算设备600操作所需的各种程序和数据。处理装置601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出I/O接口605也连接至总线604。

通常,以下装置可以连接至I/O接口605:包括例如触摸屏、触摸板、摄像头、麦克风、加速度计、陀螺仪等的输入装置605;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许计算设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的计算设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从ROM 602被安装。在该计算机程序被处理装置601执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

在一些实施方式中,客户端、计算设备可以利用诸如HTTP(HyperTextTransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。

上述计算机可读介质可以是上述计算设备中所包含的;也可以是单独存在,而未装配入该计算设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该计算设备执行时,使得该计算设备:采用判别数据集中的已知接口对待上线程序包括的函数接口进行辨识,确定待上线程序包括的目标已知接口,已知接口为有对应权限才可使用的接口,判别数据集还包括为使用已知接口必须注册的权限申请;判断待上线程序是否注册使用目标已知接口必须的权限申请;在待上线程序未注册目标已知接口必须的权限申请的情况下,将未进行权限申请注册作为合规性审核失败的原因。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或计算设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的根据硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括根据一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

本公开实施例还提供一种计算机可读存储介质,所述存储介质中存储有计算机程序,当所述计算机程序被处理器执行时可以实现上述任一方法实施例的方法,其执行方式和有益效果类似,在这里不再赘述。

本公开实施例还提供一种车辆,车辆包括前述的计算设备。具体车辆可以是燃油车辆,也可以是纯电动车辆等,本公开实施例不做限定。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

本文发布于:2023-04-14 01:12:27,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/86330.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图