软件开发工具包的管控方法、装置、计算机设备和介质
文献发布时间:2023-06-19 12:16:29
技术领域
本发明实施例涉及计算机安全技术,尤其涉及一种软件开发工具包的管控方法、装置、计算机设备和介质。
背景技术
在应用程序的版本开发中,为了实现用户界面效果更好、常用数据监控功能等,通常会接入各种第三方SDK(Software Development Kit,软件开发工具包),随着应用程序的版本迭代更新,会引入更多种类的第三方SDK来满足需求。
但是,这些第三方SDK版本更新较快,可能存在与应用程序版本不兼容的情况,或者存在一些隐藏性的漏洞,在应用程序启动后,运行这些第三方SDK时,容易导致应用程序崩溃。
发明内容
本发明实施例提供一种软件开发工具包的管控方法、装置、计算机设备和介质,以实现对软件开发工具包的管控,从而保证应用程序运行的稳定性。
第一方面,本发明实施例提供了一种软件开发工具包的管控方法,该方法包括:
检测到满足管控数据获取条件时,获取云端服务器处的管控数据;
对所述管控数据进行解析,生成至少一个软件开发工具包数组;其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令;
检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
第二方面,本发明实施例提供了一种软件开发工具包的管控方法,该方法包括:
获取至少一个软件开发工具包的使用信息;其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息;
根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据;
检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
第三方面,本发明实施例还提供了一种软件开发工具包的管控装置,该装置包括:
管控数据获取模块,用于检测到满足管控数据获取条件时,获取云端服务器处的管控数据;
管控数据解析模块,用于对所述管控数据进行解析,生成至少一个软件开发工具包数组;其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令;
目标软件开发工具包管控模块,用于检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
第四方面,本发明实施例还提供了一种软件开发工具包的管控装置,该装置包括:
使用信息获取模块,用于获取至少一个软件开发工具包的使用信息;其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息;
管控数据生成模块,用于根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据;
管控数据发送模块,用于检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
第五方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的软件开发工具包的管控方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明实施例中任一所述的软件开发工具包的管控方法。
本发明实施例通过获取云端服务器的管控数据,将管控数据解析为至少一个软件开发工具包数组,在需要对目标软件开发工具包进行管控时,根据目标软件开发工具包数组中的管控指令,确定目标软件开发工具包禁用还是使用。解决了现有技术中SDK版本更新较快,可能存在与应用程序版本不兼容的情况,或者存在一些隐藏性的漏洞,在应用程序启动后运行SDK时,容易导致应用程序崩溃的问题,实现了对软件开发工具包的管控,从而保证了应用程序运行的稳定性。
附图说明
图1是本发明实施例一中的一种软件开发工具包的管控方法的流程图;
图2是本发明实施例二中的又一种软件开发工具包的管控方法的流程图;
图3是本发明实施例三中的一种软件开发工具包的管控方法的流程图;
图4是本发明实施例四中的一种软件开发工具包的管控装置的结构示意图;
图5是本发明实施例五中的一种软件开发工具包的管控装置的结构示意图;
图6是本发明实施例六中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种软件开发工具包的管控方法的流程图,本实施例可适用于对客户端应用程序中的软件开发工具包进行管控的情况,该方法可以由软件开发工具包的管控装置来执行,该装置可以由软件和/或硬件来实现,并一般集成在客户端设备中。
如图1所示,本发明实施例的技术方案,具体包括如下步骤:
S110、检测到满足管控数据获取条件时,获取云端服务器处的管控数据。
其中,管控数据是云端服务器生成并存储的数据,用于对软件开发工具包进行管控。管控数据获取条件可以是客户端的应用程序启动,也可以是客户端的应用程序中的软件开发工具包被调用,本实施例对此不进行限制。
相应的,在客户端的应用程序启动时,拉取云端服务器处的管控数据,可以节省管控数据获取和解析的时间,在应用程序的软件开发工具包被调用时,可以直接根据解析后的管控数据进行管控,节省了软件开发工具包的管控时间。在客户端的应用程序中的软件开发工具包被调用时,拉取云端服务器处的管控数据,可以使管控数据及时更新,在应用程序启动后,由于发现了隐藏bug等使软件开发工具包的管控数据发生变化时,可以根据更新后的管控数据对软件开发工具包进行管控,保证了应用程序运行的稳定性。
S120、对所述管控数据进行解析,生成至少一个软件开发工具包数组。
其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令。
在本发明实施例中,从云端服务器获取的管控数据可以为字符串的形式,此时对管控数据进行存储,将管控数据分解为各软件开发工具包与管控指令对应的键值对形式。
管控指令用于指示对软件开发工具包的管控措施,禁用指令用于指示禁用软件开发工具包,使用指令用于指示对软件开发工具包继续进行使用。
S130、检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
满足目标软件开发工具包管控条件可以是检测到了对目标软件开发工具包的接口调用指令,也即需要运行目标软件开发工具包。此时获取目标软件开发工具包对应的目标软件开发工具包数组中的管控指令,当管控指令为禁用指令时对目标软件开发工具包进行禁用,当管控指令为使用指令时对目标软件开发工具包进行使用。
在本发明实施例中,既可以在应用程序运行时拉取管控数据,对管控数据进行解析,在应用程序的软件开发工具包被调用时根据对应的管控指令进行管控。也可以在应用程序运行之后,软件开发工具包被调用时拉取管控数据,对管控数据进行解析,并根据对应的管控指令进行管控。使用本发明实施例的技术方案,可以实现实时、高效的进行软件开发工具包的管控,从而防止因软件开发工具包版本更新或者存在bug等情况造成的应用程序崩溃,保证了应用程序运行的稳定性。
本实施例的技术方案,通过获取云端服务器的管控数据,将管控数据解析为至少一个软件开发工具包数组,在需要对目标软件开发工具包进行管控时,根据目标软件开发工具包数组中的管控指令,确定目标软件开发工具包禁用还是使用。解决了现有技术中SDK版本更新较快,可能存在与应用程序版本不兼容的情况,或者存在一些隐藏性的漏洞,在应用程序启动后运行SDK时,容易导致应用程序崩溃的问题,实现了对软件开发工具包的管控,从而保证了应用程序运行的稳定性。
实施例二
图2是本发明实施例二提供的又一种软件开发工具包的管控方法的流程图,本发明实施例在上述实施例的基础上,对获取云端服务器处的管控数据的过程以及根据管控指令对目标软件开发工具包进行管控的过程进行了进一步的具体化。
相应的,如图2所示,本发明实施例的技术方案,具体包括如下步骤:
S210、判断是否满足管控数据获取条件,如果是,则执行S220,否则返回执行S210。
在满足管控数据获取条件时,获取云端服务器处的管控数据。
S220、向云端服务器发送管控数据获取请求。
客户端向云端服务器发送管控数据获取请求,并接收云端服务器发送的管控数据。
S230、判断是否满足定时条件,如果是,则执行S240,否则,返回执行S230。
如果预设时间段之后,客户端仍未接收到云端服务器发送的管控数据,则继续向云端服务器发送管控数据获取请求,直至接收到云端服务器发送的管控数据。
S240、判断当前时刻是否接收到管控数据,如果是,则执行S250,否则返回执行S220。
S250、判断本地数据库中是否存在历史管控数据,如果是,则执行S260,否则执行S270。
历史管控数据为客户端在上一次满足管控数据获取条件时获取的管控数据。当客户端本地存储有历史管控数据时,将历史管控数据更新为当前接收的管控数据,可以保证管控数据的实时性,从而提高软件开发工具包管控的准确性,提高应用程序运行稳定性。
S260、将所述历史管控数据更新为管控数据。
S270、将所述管控数据保存至本地数据库中。
如果客户端本地未存储有历史管控数据,则可以直接将管控数据保存至本地数据库中。
S280、对所述管控数据进行解析,生成至少一个软件开发工具包数组。
将管控数据转换为软件开发工具包数组的形式,各软件开发工具包以及对应的管控指令为键值对形式。
S290、判断是否满足目标软件开发工具包管控条件,如果是,则执行S2100,否则返回执行S290。
在本发明实施例中,满足目标软件开发工具包管控条件为检测到目标软件开发工具包的接口调用指令。
S2100、获取目标软件开发工具包对应的目标软件开发工具包数组。
确定需要对目标软件开发工具包进行管控时,在软件开发工具包数组中确定与目标软件开发工具包对应的目标软件开发工具包数组。
S2110、判断目标软件开发工具包数组中的管控指令是否为禁用指令,如果是,则执行S2120,否则,执行S2130。
S2120、对目标软件开发工具包进行禁用。返回执行S290。
S2130、判断目标软件开发工具包数组中的管控指令是否为使用指令,如果是,则执行S2140,否则,执行S2150。
S2140、对目标软件开发工具包进行使用。返回执行S290。
S2150、结束。
实施例三
图3是本发明实施例三中的一种软件开发工具包的管控方法的流程图,本实施例可适用于生成软件开发工具包的管控数据,以使客户端根据管控数据对应用程序中的软件开发工具包进行管控的情况,该方法可以由软件开发工具包的管控装置来执行,该装置可以由软件和/或硬件来实现,并一般集成在云端服务器中。
如图3所示,本发明实施例的技术方案,具体包括如下步骤:
S310、获取至少一个软件开发工具包的使用信息。
其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息。
软件开发工具包版本可以包括软件开发工具包的当前版本、历史版本,敏感字段是在软件开发工具包数据中识别得到的敏感字段,当软件开发工具包数据中包含敏感字段时,属于需要禁用的软件开发工具包。更新信息是软件开发工具包版本更新时的相关信息。
S320、根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据。
根据软件开发工具包的使用信息,即可确定其对应的管控指令。示例性的,如果根据软件开发工具包版本和/或更新信息确定软件开发工具包与客户端设备不兼容,则其对应的管控指令应为禁用指令。或者,软件开发工具包的使用信息中包含敏感信息,则其对应的管控指令也应为禁用指令。再或者,如果根据软件开发工具包功能和/或用途确定软件开发工具包与应用程序相关性较低,则将其对应的管控指令确定为禁用指令等,本实施例对根据软件开发工具包的使用信息确定管控指令的方式不进行限制。
可选的,可以通过SDK安全监控系统实现对SDK管控指令的确定,SDK安全监控系统获取SDK使用信息之后,通过上述条件匹配判断SDK是否属于应禁用的SDK。进一步的,还可以通过获取SDK安全监控系统的人机交互界面发送的指令,确定SDK对应的管控指令。也即,用户可以在SDK安全监控系统的人机交互界面查看SDK使用信息,并点击人机交互界面上相应的按键,确定SDK的管控指令为禁用或是使用。
S330、检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
当接收到客户端发送的管控数据获取请求时,将管控数据发送至客户端,客户端即可以在软件开发工具包运行之前,根据管控数据确定对软件开发工具包禁用或者使用。
可选的,所述管控数据可以为字符串格式。
示例性的,云端服务器处的管控数据可以为JSON(JavaScript ObjectNotation,,JS对象简谱)格式的字符串,JSON是一种轻量级的数据交换格式。管控数据发送至客户端之后,客户端可以将json格式的字符串转为数组。
本发明实施例的技术方案,通过各软件开发工具包的使用信息确定对应的管控指令,并生成管控数据,当检测到客户端发送的管控数据获取请求时,将管控数据发送给客户端,以使客户端根据管控数据对软件开发工具包的运行进行管控。解决了现有技术中SDK版本更新较快,可能存在与应用程序版本不兼容的情况,或者存在一些隐藏性的漏洞,在应用程序启动后运行SDK时,容易导致应用程序崩溃的问题,实现了根据软件开发工具包的使用信息确定软件开发工具包的管控措施,从而使客户端在应用程序运行时,可以根据对应的管控措施管控软件开发工具包的运行,保证了应用程序运行的稳定性。
实施例四
图4是本发明实施例四中的一种软件开发工具包的管控装置的结构示意图,该装置设置在客户端中,该装置包括:管控数据获取模块410、管控数据解析模块420以及目标软件开发工具包管控模块430。其中:
管控数据获取模块410,用于检测到满足管控数据获取条件时,获取云端服务器处的管控数据;
管控数据解析模块420,用于对所述管控数据进行解析,生成至少一个软件开发工具包数组;其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令;
目标软件开发工具包管控模块430,用于检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
本实施例的技术方案,通过获取云端服务器的管控数据,将管控数据解析为至少一个软件开发工具包数组,在需要对目标软件开发工具包进行管控时,根据目标软件开发工具包数组中的管控指令,确定目标软件开发工具包禁用还是使用。解决了现有技术中SDK版本更新较快,可能存在与应用程序版本不兼容的情况,或者存在一些隐藏性的漏洞,在应用程序启动后运行SDK时,容易导致应用程序崩溃的问题,实现了对软件开发工具包的管控,从而保证了应用程序运行的稳定性。
在上述实施例的基础上,所述管控数据获取模块410,包括:
管控数据获取请求发送单元,用于向云端服务器发送管控数据获取请求;
定时条件判断单元,用于若确定满足定时条件,并且当前时刻未接收到管控数据,则继续向云端服务器发送管控数据获取请求,直至确定接收到管控数据。
在上述实施例的基础上,所述装置,还包括:
管控数据更新模块,用于如果确定本地数据库中存在历史管控数据,则将所述历史管控数据更新为管控数据;
管控数据保存模块,用于否则,将所述管控数据保存至本地数据库中。
在上述实施例的基础上,所述目标软件开发工具包管控模块430,包括:
目标软件开发工具包数组获取单元,用于获取目标软件开发工具包对应的目标软件开发工具包数组;
目标软件开发工具包禁用单元,用于如果目标软件开发工具包数组中的管控指令为禁用指令,则对目标软件开发工具包进行禁用;
目标软件开发工具包使用单元,用于如果目标软件开发工具包数组中的管控指令为使用指令,则对目标软件开发工具包进行使用。
本发明实施例所提供的软件开发工具包的管控装置可执行本发明任意实施例所提供的软件开发工具包的管控方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5是本发明实施例五中的一种软件开发工具包的管控装置的结构示意图,该装置设置在云端服务器中,该装置包括:使用信息获取模块510、管控数据生成模块520以及管控数据发送模块530。其中:
使用信息获取模块510,用于获取至少一个软件开发工具包的使用信息;其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息;
管控数据生成模块520,用于根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据;
管控数据发送模块530,用于检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
在上述实施例的基础上,所述管控数据为字符串格式。
本发明实施例所提供的软件开发工具包的管控装置可执行本发明任意实施例所提供的软件开发工具包的管控方法,具备执行方法相应的功能模块和有益效果。
实施例六
图6为本发明实施例六提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括处理器60、存储器61、输入装置62和输出装置63;计算机设备中处理器60的数量可以是一个或多个,图6中以一个处理器60为例;计算机设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的软件开发工具包的管控方法对应的模块(例如,软件开发工具包的管控装置中的管控数据获取模块410、管控数据解析模块420以及目标软件开发工具包管控模块430,或者软件开发工具包的管控装置中的使用信息获取模块510、管控数据生成模块520以及管控数据发送模块530)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的软件开发工具包的管控方法。该方法包括:
检测到满足管控数据获取条件时,获取云端服务器处的管控数据;
对所述管控数据进行解析,生成至少一个软件开发工具包数组;其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令;
检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
还可以实现上述的软件开发工具包的管控方法。该方法包括:
获取至少一个软件开发工具包的使用信息;其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息;
根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据;
检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置62可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。
实施例七
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种软件开发工具包的管控方法,该方法包括:
检测到满足管控数据获取条件时,获取云端服务器处的管控数据;
对所述管控数据进行解析,生成至少一个软件开发工具包数组;其中,所述软件开发工具包数组中包括软件开发工具包对应的管控指令,所述管控指令为禁用指令或者使用指令;
检测到满足目标软件开发工具包管控条件时,根据目标软件开发工具包数组中的管控指令,对目标软件开发工具包进行禁用或者使用。
或者用于执行一种软件开发工具包的管控方法,该方法包括:
获取至少一个软件开发工具包的使用信息;其中,所述使用信息包括以下至少一项:软件开发工具包版本、软件开发工具包功能、软件开发工具包用途、敏感字段以及更新信息;
根据所述使用信息确定至少一个软件开发工具包对应的管控指令,生成管控数据;
检测到客户端发送的管控数据获取请求时,将所述管控数据发送至客户端,以使客户端根据所述管控数据对软件开发工具包的运行进行管控。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的软件开发工具包的管控方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述软件开发工具包的管控装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
- 软件开发工具包的管控方法、装置、计算机设备和介质
- 软件开发工具包调用方法、装置、计算机设备和存储介质