一种数据处理方法、设备及介质与流程

文档序号:22241595发布日期:2020-09-15 19:55阅读:153来源:国知局
一种数据处理方法、设备及介质与流程

本申请涉及互联网应用程序,具体涉及应用程序技术领域,尤其涉及一种数据处理方法、一种数据处理设备及一种计算机可读存储介质。



背景技术:

免安装的应用程序又称为小程序。目前,小程序主要是从第三方(如设备指纹产品提供商)获得终端的设备指纹来进行使用,但实践发现,这种方式会存在一些缺点:(1)需要联网,即需要小程序与第三方之间进行交互,交互过程中就有可能造成数据泄露,无法适用于某些高保密要求的产品场景(如银行类);(2)终端的设备指纹唯一性差。终端的设备指纹是在第三方生成,而第三方通常依赖终端的型号、版本等基础数据来生成该设备指纹,由于其所依赖的数据太过基础、宽泛,这使得设备指纹不具备良好的唯一性,经测试,在卸载重装小程序的父应用客户端之后,或者在小程序的用户账号产生切换之后,均可能导致同一终端的设备指纹发生变化,设备指纹的唯一性较差。



技术实现要素:

本申请实施例提供一种数据处理方法,无需联网环境即可生成终端的具有良好持久性和唯一性的设备指纹。

一方面,本申请实施例提供一种数据处理方法,该方法由数据处理设备执行,该数据处理设备集成在目标应用程序中,目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;该方法包括:

获取终端的硬件标识;

若获取硬件标识失败,则从n个维度收集终端的硬件能力数据,n为大于1的整数;一个维度的硬件能力数据用于唯一标识所述终端的一种硬件能力;

对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹。

一方面,本申请实施例提供另一种数据处理方法,该方法包括:

获取目标应用程序的业务请求;目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;

获取终端的设备指纹;

向服务器发送业务请求,业务请求中携带终端的设备指纹,使得服务器根据终端的设备指纹对业务请求进行风控检测,并根据风控检测结果对业务请求进行处理。

一方面,本申请实施例提供一种数据处理设备,该数据处理设备集成在目标应用程序中,目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;该设备包括:

获取单元,用于获取终端的硬件标识;

收集单元,用于若获取硬件标识失败,则从n个维度收集终端的硬件能力数据,n为大于1的整数;一个维度的硬件能力数据用于唯一标识所述终端的一种硬件能力;

处理单元,用于对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹。

一方面,本申请实施例提供另一种数据处理设备,该设备包括:

请求获取单元,用于获取目标应用程序的业务请求;目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;

指纹获取单元,用于获取终端的设备指纹;

处理单元,用于向服务器发送业务请求,业务请求中携带终端的设备指纹,使得服务器根据终端的设备指纹对业务请求进行风控检测,并根据风控检测结果对业务请求进行处理。

一方面,本申请实施例提供一种终端,包括输入设备和输出设备,还包括:

处理器,适于实现一条或多条指令;以及,

计算机可读存储介质,该计算机可读存储介质存储有目标应用程序,目标应用程序是一种免安装的应用程序,目标应用程序是终端中的一个应用客户端中的子应用程序;且目标应用程序中集成有数据处理设备,该数据处理设备以软件开发工具包的方式被集成在目标应用程序中,数据处理设备适于由处理器加载并执行上述的数据处理方法。

一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有目标应用程序,目标应用程序是一种免安装的应用程序,目标应用程序是终端中的一个应用客户端中的子应用程序;且目标应用程序中集成有数据处理设备,该数据处理设备以软件开发工具包的方式被集成在目标应用程序中,数据处理设备适于由处理器加载并执行上述的数据处理方法。

一方面,本申请实施例提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备获取终端的硬件标识;若获取硬件标识失败,则从n(n为大于1的整数)个维度收集终端的硬件能力数据,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹;首先,设备指纹的生成过程是在小程序中实现的,无需与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,n个维度的硬件能力数据可以唯标识终端的n种硬件能力,那么数据处理设备依赖于n个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化(如系统升级、应用客户端的卸载重装、小程序中的用户账号切换等)而改变,这就有效提升了设备指纹的唯一性。

附图说明

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

图1示出了本申请一个示例性实施例提供的一种数据处理方法的流程图;

图2示出了本申请另一个示例性实施例提供的一种数据处理方法的流程图;

图3示出了本申请一个示例性实施例提供的一种系统信息字符串的收集流程图;

图4a示出了本申请一个示例性实施例提供的一种平面图形的像素数据的收集流程图;

图4b示出了本申请一个示例性实施例提供的平面图形的示意图;

图5a示出了本申请一个示例性实施例提供的一种立体图像的像素数据和绘图协议信息的收集流程图;

图5b示出了本申请一个示例性实施例提供的一种三角形图像的示意图;

图6示出了本申请一个示例性实施例提供的一种终端的设备指纹的示意图;

图7示出了本申请另一个示例性实施例提供的一种数据处理方法的流程图;

图8示出了本申请一个示例性实施例提供的一种小程序的风控日志的页面展示图;

图9示出了本申请一个示例性实施例提供的一种数据处理设备的结构示意图;

图10示出了本申请另一个示例性实施例提供的一种数据处理设备的结构示意图;

图11示出了本申请一个示例性实施例提供的一种终端的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例涉及免安装的应用程序,所谓免安装的应用程序是指无需下载安装即可使用的应用程序,这类免安装的应用程序又称为小程序。小程序通常作为子应用程序运行于应用客户端中,此时应用客户端与该小程序之间具备父子关系,该应用客户端作为该小程序的父应用客户端,而该小程序作为该应用客户端的子应用程序。应用客户端(又称为app(application,应用程序)客户端)是指下载并安装在终端中,并在终端中运行的应用程序。其中,终端可包括但不限于:手机、pda(平板电脑)、智能可穿戴设备(如智能眼镜、智能手表等)等等。终端中可以安装并运行各类应用客户端,包括但不限于:im(instantmessaging,即时通讯)客户端(例如微信客户端、qq客户端等)、sns(socialnetworkingservices,社交网络服务)客户端(例如微博客户端、具备社交功能的地图客户端等)、内容服务客户端(例如新闻客户端)、图像处理客户端、搜索客户端等等。除特别说明外,本申请后续实施例中所提及的应用程序,均以运行于终端的各类应用客户端中的子应用程序(即小程序)为例进行说明。

终端的设备指纹是指可以用于唯一标识出该终端的设备特征或独特特点的设备标识。传统的应用程序(即需要安装的应用程序,如终端中的应用客户端)通过调用终端的操作系统api(applicationprogramminginterface,应用程序编程接口)直接获取终端的底层数据,然后根据终端的底层数据来生成终端的设备指纹。但是,小程序运行在其父应用客户端中,具体地:小程序的代码运行在其父应用客户端提供的代码引擎中,例如:im客户端中的小程序的代码运行在该im客户端提供的js(javascript,一种直译式脚本语言,是一种动态类型、弱类型、基于原型的编程语言,简称js)引擎中。所以,小程序对终端的各种信息的获取需要借助于该小程序的父应用客户端提供终端的操作系统api来实现,但出于安全性考虑,通常情况下小程序的父应用客户端并不会向小程序提供获取终端的底层数据(如mac地址、imei等)的api,这导致小程序无法像传统应用程序(即需要安装的应用程序)一样能够直接获取到终端的底层数据,进而无法直接根据终端的底层数据来生成终端的设备指纹。

基于此,本申请实施例提出一种数据处理方案,该方案可在小程序中生成终端的设备指纹,无需小程序与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,依赖于终端的多个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化(如系统升级、应用客户端的卸载重装、小程序中的用户账号切换等)而改变,所以能够有效保证设备指纹的唯一性。此处的唯一性主要表现如下两方面,一方面是指同一终端中,无论小程序所属的父应用客户端升级、降级、切换账号等等,该小程序所生成的终端的设备指纹始终不变;另一方面,针对不同的终端设备,生成的设备指纹一定不同。通过本技术方案,可使得小程序能够绕过其父应用客户端对终端的底层数据访问能力的限制,无需联网环境即可生成终端的具有良好持久性和唯一性的设备指纹。

下面将结合附图,对本申请实施例提供的数据处理方案进行详细介绍。

图1示出了本申请一个示例性实施例提供的一种数据处理方法的流程图;该方法由数据处理设备执行,该数据处理设备集成在目标应用程序中,目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;该方法包括以下步骤s101-s103:

s101,获取终端的硬件标识。

终端的硬件标识是指用于标识终端内的处理器信息的唯一标识,该硬件标识例如可以是cpuid(cpuid是指用户计算机设备的处理器信息),或其他用于标识终端内的处理器信息的标识。终端的硬件标识具备良好的唯一性的特点,即一个硬件标识只能唯一标识一个终端内的处理器信息。在一种实施方式中,数据处理设备可以从小程序的父应用客户端处获取终端的硬件标识;或者借助于该父应用客户端提供的硬件标识的调用能力来获取终端的硬件标识。如果能够成功获得到终端的硬件标识,就可以直接利用该终端的硬件标识来生成终端的设备指纹。如果未成功获取到终端的硬件标识,那么就需要借助于步骤s102-s103来生成终端的设备指纹。

s102,若获取硬件标识失败,则从n个维度收集终端的硬件能力数据,n为大于1的整数。一个维度的硬件能力数据用于唯一标识所述终端的一种硬件能力。

n的取值可以根据实际需要进行设定,例如n为3、4、5等等。维度的数量越多,则收集到的终端的硬件能力数据就越全面,那么最终生成的终端的设备指纹的唯一性就越好;与此同时,维度越多其运算的复杂度也相应较高,耗费的运算资源相对也较多。所以n的取值需要在设备指纹的唯一性要求及运算资源的合理耗费之间取个平衡。本申请实施例中,考虑到上述平衡性以n=3为例进行说明,在一种实施方式中,n个维度可包括操作系统维度、平面图形绘制维度和立体图像绘制维度:(1)操作系统维度的硬件能力数据可包括终端的系统信息字符串,该系统信息字符串可用于反映终端中的操作系统的语言设置信息、终端的品牌信息、操作系统的版本信息和终端的屏幕尺寸等信息。其中,操作系统的语言设置信息和品牌信息可用于标识不同批次(即不同品牌、不同型号)的终端不同品牌、型号的终端。而操作系统的版本信息和屏幕尺寸信息可用于区别同批次的终端,即针对同样品牌、同样型号的两个终端,通过版本信息和屏幕尺寸信息可区别出该两个同批次终端之间的不同。可见,操作系统维度的硬件能力数据(即系统信息字符串)能够唯一地标识一个终端的操作系统的硬件能力,那么以此操作系统维度的硬件能力数据作为设备指纹的生成因子,会使得生成的设备指纹具备良好的唯一性。(2)平面图形绘制维度的硬件能力数据可包括终端的gpu(graphicsprocessingunit,图形处理器)绘制的平面图形的像素数据。不同终端的gpu渲染能力及渲染参数存在差异,即使在同批次的多个终端上对相同文本进行平面图形的渲染,渲染生成的平面图形的像素数据也存在差异;所以基于该差异,终端的gpu绘制的平面图形的像素数据可以用来对终端的平面图形绘制能力进行唯一标识,那么以此平面图形绘制维度的硬件能力数据作为设备指纹的生成因子,会使得生成的设备指纹具备良好的唯一性。(3)立体图像绘制维度的硬件能力数据可包括终端的gpu绘制的立体图像的像素数据以及立体图像的绘图协议信息(如webgl(webgraphicslibrary,一种立体绘图协议)信息)。立体图像是需要被实时创建并动态渲染得到,由于不同终端的gpu渲染能力及渲染参数存在差异,即使在同批次的两个终端上进行渲染,渲染生成的立体图像的像素数据也存在差异;所以基于该差异,终端绘制的立体图像的像素数据可以用来对终端的立体图像绘制能力进行唯一标识,另外,立体图像的绘图协议信息是静态数据,与终端的gpu硬件能力相关,不随着系统版本升级而改变。所以,本申请实施例以立体图像的像素数据以及立体图像的绘图协议信息作为设备指纹生成因子,会使得设备指纹具备良好的唯一性。

s103,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹。

可以将该n个维度的硬件能力数据设为一个输入参数,再采用指纹生成算法对该输入参数进行运算处理,就可生成终端的设备指纹;此处的指纹生成算法可包括但不限于:哈希算法、md5(message-digestalgorithm5,信息摘要算法第5版)算法、rsa(一种加密算法)算法、des(dataencryptionstandard,数据加密标准)算法等等。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备获取终端的硬件标识;若获取硬件标识失败,则从n(n为大于1的整数)个维度收集终端的硬件能力数据,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹;首先,设备指纹的生成过程是在小程序中实现的,无需与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,n个维度的硬件能力数据可以唯标识终端的n种硬件能力,那么数据处理设备依赖于n个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化而改变,这就有效提升了设备指纹的唯一性。

图2示出了本申请另一个示例性实施例提供的一种数据处理方法的流程图;该方法由数据处理设备执行,该数据处理设备集成在目标应用程序中,目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;该方法包括以下步骤s201-s203:

s201,调用目标应用程序的父应用客户端提供的第一api,检查终端中是否存在硬件标识的泄露事件;若存在,则执行步骤s202;否则,执行步骤s204。

s202,从泄露事件中获取硬件标识。

s203,若成功获取到硬件标识,则对硬件标识进行运算处理,生成终端的设备指纹;之后,流程结束。

步骤s201-s203中,数据处理设备优先尝试检查终端中是否存在硬件标识(如cpuid)的泄露事件;具体的,数据处理设备调用小程序的父应用客户端提供的第一api来进行检查,例如:微信客户端中的小程序调用微信客户端开放的第一api来检查泄露事件。该第一api被调用成功后,会返回cpuid,该cpuid由小程序的父应用客户端来提供。但是,该第一api被成功调用后,终端会弹框提示用户授权,在用户授权之后才会返回cpuid;实际应用中出于安全性考虑,用户通常会拒绝授权从而导致无法成功获得cpuid;另外,第一api被成功调用并返回cpuid的过程无法静默实现,而小程序对终端的设备指纹的生成过程要求静默实现,故不能通过成功调用第一api的方式来获得cpuid。但经实践发现,在调用第一api的过程中如果传入错误参数,该第一api不会弹框提示用户授权而是直接返回调用失败提示,但在该调用失败提示中会将cpuid暴露出来,导致cpuid泄露。因此,本申请实施例中,数据处理设备利用第一api的上述特性尝试通过检查泄露事件来获得cpuid,如前述,由于泄露事件是在调用第一api的过程中传入错误参数导致第一api调用失败而产生的事件,该泄露事件属于静默事件,即泄露事件的产生并不会被用户感知(不会弹框提示),这符合小程序对终端的设备指纹的生成过程的静默要求;另外,泄露事件会将cpuid暴露出来,而cpuiid是可唯一标识终端的硬件标识,以此cpuid作为设备指纹的生成因子,可以较为便捷地得到具备良好唯一性的设备指纹。所以,如果存在泄露事件,则直接使用泄露事件中被暴露的cpuid字符串作为输入参数,通过诸如md5算法等指纹生成算法对该输入参数进行运算,得到终端的设备指纹并结束流程,此处该设备指纹可以是一个hash(哈希)串。如果不存在泄露事件,那么就需要继续执行下述步骤s204-s208,以其他方式来生成终端的设备指纹。

s204,收集终端的系统信息字符串。

步骤s204是从操作系统维度来收集终端的硬件能力数据。图3示出了本申请一个示例性实施例提供的一种系统信息字符串的收集流程图;如图3所示,步骤s204中收集终端的系统信息字符串的流程具体包括以下步骤s11-s12:

s11、调用目标应用程序的父应用客户端提供的第二api,获取操作系统的硬件信息;如图3所示,该硬件信息包括以下至少一种:语言设置信息、品牌信息、版本信息和屏幕尺寸信息。其中,语言设置信息和品牌信息可用于标识不同批次(即不同品牌、不同型号)的终端不同品牌、型号的终端;版本信息和屏幕尺寸信息可用于区别同批次的终端,即针对同样品牌、同样型号的两个终端,通过版本信息和屏幕尺寸信息可区别出该两个同批次终端之间的不同。

s12、根据硬件信息生成终端的系统信息字符串。

步骤s11-s12中,终端的操作系统的硬件信息可通过调用小程序的父应用客户端开放的第二api直接获取到,且该调用过程属于静默过程,无需弹框提示用户授权。根据获取到的硬件信息生成的系统信息字符串例如是:{"system":"android","version":"8.1","brand":"xxglaxy6"},此例的系统信息字符串表示终端的操作系统是8.1版本的android系统,品牌是xx,型号是glaxy6。通过上述步骤s11-s12可知,系统信息字符串能够唯一地标识一个终端的操作系统的硬件能力,那么以此系统信息字符串作为设备指纹的生成因子,会使得生成的设备指纹具备良好的唯一性。

s205,收集终端绘制的平面图形的像素数据。

步骤s205是从平面图形绘制维度来收集终端的硬件能力数据。图4a示出了本申请一个示例性实施例提供的一种平面图形的像素数据的收集流程图;如图4a所示,收集平面图形的像素数据的流程包括如下步骤s21-s23:

s21、创建平面绘图画布标签,并根据平面绘图画布标签获取平面图形的绘制上下文。在一种实现方式中,平面绘图画面标签是指convas2d标签,convas是用js绘制图形的标签,是html5(hypertextmarkuplanguage5.0,超文本标记语言5.0)的特性。通过convas2d标签即可获得到平面图形的绘制上下文,此处的平面图形的绘制上下文可以是指绘制平面图形所需的接口集合。

s22、采用平面图形的绘制上下文中进行平面图形的绘制。具体地,数据处理设备将待绘制的文本传入至平面图形的绘制上下文中进行绘制(即渲染),即是调用平面图形的绘制上下文中的接口对待绘制的文本进行渲染,生成平面图形。本实施例中,待绘制的文本可以包括多国语言文字与unicode(统一码、万国码、单一码)表情混合后的文本。

s23、获取绘制得到的平面图形的像素数据。

步骤s21-s23的关键点在于:当待绘制的文本是多国语言文字与unicode表情混合后的文本,由于不同终端的gpu渲染能力及渲染参数存在差异,即使在同批次的多个终端上对相同文本进行渲染,渲染生成的平面图形的像素数据也存在差异;具体参见图4b所示示例,同批次的3个终端对相同文本渲染得到的平面图形分别为40、41和42。如图所示,待绘制的文本是“这仅仅是一个测试”,同批次的其中一个终端渲染得到的平面图形40包括文本1和图标401,该文本1是待绘制的文本的英文表达“it'sjustatest”。另一个终端渲染得到的平面图形41包括文本2和图标411,该文本2是待绘制的文本的日语表达“これはただのテストです”。再一个终端渲染得到的平面图形42包括文本3和图标421,该文本3是待绘制的文本的中文表达“这仅仅是一个测试”。该平面图形40、41和42的像素数据存在差异。本申请可利用该差异,通过获取平面图形的像素数据来对终端的平面图形绘制能力进行唯一标识,那么以此平面图形的像素数据作为设备指纹的生成因子,会使得生成的设备指纹具备良好的唯一性。在一种实现方式中,平面图形的像素数据指平面图形的rgba值。

s206,收集终端绘制的立体图像的像素数据。

s207,收集终端的立体图像的绘图协议信息。

步骤s206-s207是从立体图像绘制维度来收集终端的硬件能力数据。图5a示出了本申请一个示例性实施例提供的一种立体图像的像素数据和绘图协议信息的收集流程图;如图5a所示,收集立体图像的像素数据的流程包括以下步骤s31-s35:

s31、创建立体绘图画布标签,并根据立体绘图画布标签获取立体图像的绘制上下文。在一种实现方式中,立体绘图画面标签是指convaswebgl标签;其中,webgl是一种3d绘图协议,这种绘图协议允许将js与opengles(openglforembeddledsystems,为终端(如手机、pad等)定义了一个跨编程语言、跨平台编程的专业图形程序接口)结合在一起,通过增加opengles的一个js绑定,webgl可以为html5convas标签提供硬件3d加速渲染。此处的立体图像的绘制上下文可以是指绘制立面图像所需的接口集合。

s32、根据立体图像的绘制上下文创建三角形顶点数据。立体图像(3d图像)是由一个个三角形面片组成的,而绘制一个三角形需要3个顶点的位置、坐标等数据。本实施例通过调用立体图像的绘制上下文中的接口来创建三角形顶点数据。

s33、配置和编译着色器。着色器(shader)是用来实现图像渲染的,用来替代固定渲染管线的可编辑程序。编译后的shader是一段由终端的gpu执行的代码,该编译后的shader用于决定如何渲染出三角形。

s34、调用立体图像的绘制上下文中的绘制接口对三角形顶点数据和着色器进行渲染,生成立体图像。

首先,将编译后的shader链接到终端的program(opengles的连接程序)中,以配置使用该编译后的shader。其次,调用立体图像的绘制上下文中的绘制接口,让终端的gpu使用上述的三角形数据及shader进行渲染,得到3d图像。绘制的三角形可参见图5b所示示例的示意图。

s35、获取立体图像的像素数据。

在一种实现方式中,立体图像的像素数据指立体图像中的各三角形面片的rgba值。

再请参见图5a,收集立体图像的绘图协议信息的流程包括以下步骤s36-s37:

s36、根据立体图像的绘制上下文获取立体图像的绘图协议的基本信息。

本实施例的一种实现方式中,立体图像的绘图协议指webgl。该webgl的基本信息与终端硬件的底层能力(如android终端的opengles)相关,不会随着系统升级改变。

s37、根据立体图像的绘制上下文获取立体图像的绘图协议的扩展信息。webgl的扩展信息包括:枚举webgl支持的扩展名字。

步骤s206-s207获取到的立体图像绘制维度的硬件能力数据,其用作设备指纹生成的输入性参数来提升唯一性,这主要体现在:

(1)立体图像的像素数据。由于立体(3d)图像是通过webgl实时创建并动态渲染得到,由于不同终端的gpu渲染能力及渲染参数存在差异,即使在同批次的两个终端上进行渲染,渲染生成的立体图像的像素数据也存在差异;本申请利用该差异,通过获取立体图像的像素数据来对终端的立体图像绘制能力进行唯一标识,并以该立体图像的像素数据作为设备指纹的生成因子,能有效提升设备指纹的唯一性。

(2)webgl信息。webgl的基本信息是静态数据,该webgl的基本信息与终端的gpu硬件能力相关,不随着系统版本升级而改变,以此webgl作为设备指纹生成因子,会使得设备指纹具备良好的唯一性。

s208,将收集到的各个维度的硬件能力数据作为输入参数,并采用md5算法对输入参数进行运算处理,生成终端的设备指纹;之后,流程结束。

在一种实施方式中,可将步骤s204-s207收集到的3个维度的硬件能力数据作为一个整体的输入参数,使用md5算法对该整体的输入参数进行计算,生成终端的设备指纹。终端的设备指纹是一个hash字符串,具体可参见图6示所示示例。其中,确定输入参数的流程具体包括以下①-④:①使用md5算法对步骤s204收集到的系统信息字符串进行计算,得到操作系统维度的hash值;②使用md5算法对步骤s205收集到的平面图形的像素数据进行计算得到平面图形绘制维度下的hash值。③使用md5算法对步骤s206-s207收集到的立体图像的像素数据和立体图像的绘图协议信息进行计算得到立体图像绘制维度下的hash值。④将各维度的hash值进行字符串拼接形成输入参数。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备获取终端的硬件标识;若获取硬件标识失败,则从n(n为大于1的整数)个维度收集终端的硬件能力数据,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹;首先,设备指纹的生成过程是在小程序中实现的,无需与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,n个维度的硬件能力数据可以唯标识终端的n种硬件能力,那么数据处理设备依赖于n个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化而改变,这就有效提升了设备指纹的唯一性。

上述图1-图6所示的数据处理方法,能够为终端的上层产品(如小程序)提供终端的硬件到上层产品的业务的映射能力。通过将小程序(具体是小程序中集成的数据处理设备)生成的终端的设备指纹应用于风控管理场景中,基于终端的设备指纹能够实现对小程序中的业务的风控管理。

图7示出了本申请另一个示例性实施例提供的一种数据处理方法的流程图;该方法由数据处理设备执行,该数据处理设备集成在目标应用程序中,目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;该方法包括以下步骤s701-s703:

s701,获取目标应用程序的业务请求。小程序中的业务请求可包括但不限于:页面请求、api调用请求、函数调用请求等等。

s702,获取终端的设备指纹,终端的设备指纹是采用图1或图2所示的方法生成的。

s703,向服务器发送业务请求,业务请求中携带终端的设备指纹,使得服务器根据终端的设备指纹对业务请求进行风控检测,并根据风控检测结果对业务请求进行处理。

服务器可以是指小程序的后台服务器。步骤s703中的风控检测过程可以包括如下:(1)服务器接收到小程序发送的业务请求之后,先将业务请求中携带的终端的设备指纹与设备黑名单库进行比对;此处的设备黑名单库中收录了大量的恶意或非法的设备指纹。(2)如果业务请求中携带的终端的设备指纹命中设备黑名单库,表示该业务请求存在风险;如果业务请求中携带的终端的设备指纹未命中设备黑名单库,表示该业务请求不存在风险。步骤s703中的服务器根据风控检测结果对业务请求进行的处理包括:如果业务请求存在风险,服务器就拦截该业务请求或丢弃该业务请求;如果业务请求不存在风险,服务器就响应该业务请求。通过服务器的风控检测,可实现对小程序的业务请求的风险性做出判断及处理,进而实现如反薅羊毛、反垃圾注册等功能。另外,服务器还会定期(例如每隔12小时、每天等)统计小程序的业务请求的风控检测结果,形成小程序的风控日志,并将该小程序的风控日志发送至小程序的开发者或运维人员,图8示出了本申请一个示例性实施例提供的一种小程序的风控日志的页面展示图;小程序的开发者或运维人员能够通过图8所示的页面直观且及时捕获到小程序中的异常。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备来生成终端的设备指纹,该设备指纹具备良好的唯一性,并且,该终端的设备指纹可被应用于风控管理场景中,通过对终端的设备指纹执行风控策略(如设备黑名单库),能够实现对小程序中的业务的风控管理,提升小程序的业务安全性。

图9示出了本申请一个示例性实施例提供的一种数据处理设备的结构示意图;该数据处理设备集成在目标应用程序中,在一种实施方式中,该数据处理设备以sdk(softwaredevelopmentkit,软件开发工具包)方式被集成在目标应用程序的代码中。目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;即目标应用程序是小程序。该数据处理设备包括:

获取单元901,用于获取终端的硬件标识。

收集单元902,用于若获取硬件标识失败,则从n个维度收集终端的硬件能力数据,n为大于1的整数。

处理单元903,用于对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹。

在一种实施方式中,处理单元903还用于:若成功获取到硬件标识,则对硬件标识进行运算处理,生成终端的设备指纹。

在一种实施方式中,获取单元901具体用于:

调用目标应用程序的父应用客户端提供的第一应用程序编程接口,检查终端中是否存在硬件标识的泄露事件;

若存在,从泄露事件中获取硬件标识。

在一种实施方式中,n个维度包括操作系统维度,操作系统维度的硬件能力数据包括终端的系统信息字符串;收集单元902具体用于:

调用目标应用程序的父应用客户端提供的第二应用程序编程接口,获取操作系统的硬件信息;

根据硬件信息生成终端的系统信息字符串;

其中,硬件信息包括以下至少一种:语言设置信息、品牌信息、版本信息和屏幕尺寸信息。

在一种实施方式中,n个维度包括平面图形绘制维度,平面图形绘制维度的硬件能力数据包括平面图形的像素数据;收集单元902具体用于:

创建平面绘图画布标签,并根据平面绘图画布标签获取平面图形的绘制上下文;

采用平面图形的绘制上下文中进行平面图形的绘制;

获取绘制得到的平面图形的像素数据。

在一种实施方式中,n个维度包括立体图像绘制维度,立体图像绘制维度的硬件能力数据包括立体图像的像素数据;收集单元902具体用于:

创建立体绘图画布标签,并根据立体绘图画布标签获取立体图像的绘制上下文;

根据立体图像的绘制上下文创建三角形顶点数据,并配置和编译着色器;以及,

调用立体图像的绘制上下文中的绘制接口对三角形顶点数据和着色器进行渲染,生成立体图像;

获取立体图像的像素数据。

在一种实施方式中,立体图像绘制维度的硬件能力数据还包括立体图像的绘图协议信息;收集单元902还用于:

根据立体图像的绘制上下文获取立体图像的绘图协议信息,立体图像的绘图协议信息包括立体图像的绘图协议的基本信息和扩展信息。

在一种实施方式中,处理单元903具体用于:

将n个维度的硬件能力数据设为输入参数;

采用指纹生成算法对输入参数进行运算处理,生成终端的设备指纹。

基于同一发明构思,本实施例中提供的数据处理设备解决问题的原理与有益效果与图1或图2所示的数据处理方法解决问题的原理和有益效果相似,因此,本实施例可以参见图1或图2所示方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备获取终端的硬件标识;若获取硬件标识失败,则从n(n为大于1的整数)个维度收集终端的硬件能力数据,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹;首先,设备指纹的生成过程是在小程序中实现的,无需与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,n个维度的硬件能力数据可以唯标识终端的n种硬件能力,那么数据处理设备依赖于n个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化而改变,这就有效提升了设备指纹的唯一性。

图10示出了本申请另一个示例性实施例提供的一种数据处理设备的结构示意图;该数据处理设备集成在目标应用程序中,在一种实施方式中,该数据处理设备以sdk(softwaredevelopmentkit,软件开发工具包)方式被集成在目标应用程序的代码中。目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;即目标应用程序是小程序。

该数据处理设备包括:

请求获取单元1001,用于获取目标应用程序的业务请求。

指纹获取单元1002,用于获取终端的设备指纹。

处理单元1003,用于向服务器发送业务请求,业务请求中携带终端的设备指纹,使得服务器根据终端的设备指纹对业务请求进行风控检测,并根据风控检测结果对业务请求进行处理。

其中,指纹获取单元1002所获得的终端的设备指纹可以是由该数据处理设备执行图1或图2所示的方法生成的。

基于同一发明构思,本实施例中提供的数据处理设备解决问题的原理与有益效果与图7所示的数据处理方法解决问题的原理和有益效果相似,因此,本实施例可以参见图7所示方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备来生成终端的设备指纹,该设备指纹具备良好的唯一性,并且,该终端的设备指纹可被应用于风控管理场景中,通过对终端的设备指纹执行风控策略(如设备黑名单库),能够实现对小程序中的业务的风控管理,提升小程序的业务安全性。

图11示出了本申请一个示例性实施例提供的一种终端的结构示意图。请参见图11,该终端可以是手机、智能手机、pda(平板电脑)、智能可穿戴设备(如智能手表、智能手环)等等。该终端可包括输入设备和输出设备,还包括处理器1101和计算机可读存储介质1102。输入设备、输出设备、处理器1101以及计算机可读存储介质1102可通过总线或者其它方式连接。其中,输入设备可包括但不限于:射频接收器、键盘、触摸屏等设备;输出设备可包括但不限于射频发送器等设备。

计算机可读存储介质1101是终端中的记忆设备,被设置于终端的存储器中。此处的计算机可读存储介质1101既可以包括终端中的内置存储介质,当然也可以包括终端所支持的扩展存储介质,可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机可读存储介质。计算机可读存储介质1101提供存储空间,该存储空间用于存储终端的操作系统,还用于存放程序和数据。在本实施例的一种实施方式中,计算机可读存储介质存储1101有目标应用程序,该目标应用程序是一种免安装的应用程序,该目标应用程序是终端中的一个应用客户端中的子应用程序;且目标应用程序中集成有数据处理设备,该数据处理设备是sdk的方式被集成在目标应用程序中,该sdk(即数据处理设备)适于由处理器1102加载,以实现如图1-图2或图7所示实施例中的数据处理方法的相应步骤。

在一个实施例中,处理器1102加载计算机可读存储介质1101中的sdk,并执行如下步骤:

获取终端的硬件标识;

若获取硬件标识失败,则从n个维度收集终端的硬件能力数据,n为大于1的整数;

对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹。

在一种实施方式中,处理器1102加载计算机可读存储介质1101中的sdk,并且还执行如下步骤:若成功获取到硬件标识,则对硬件标识进行运算处理,生成终端的设备指纹。

在一种实施方式中,处理器1102加载计算机可读存储介质1101中的sdk执行获取终端的硬件标识的步骤时,具体执行如下步骤:

调用目标应用程序的父应用客户端提供的第一应用程序编程接口,检查终端中是否存在硬件标识的泄露事件;

若存在,从泄露事件中获取硬件标识。

在一种实施方式中,n个维度包括操作系统维度,操作系统维度的硬件能力数据包括终端的系统信息字符串;处理器1102加载计算机可读存储介质1101中的sdk执行从n个维度收集终端的硬件能力数据的步骤时,具体执行如下步骤:

调用目标应用程序的父应用客户端提供的第二应用程序编程接口,获取操作系统的硬件信息;

根据硬件信息生成终端的系统信息字符串;

其中,硬件信息包括以下至少一种:语言设置信息、品牌信息、版本信息和屏幕尺寸信息。

在一种实施方式中,n个维度包括平面图形绘制维度,平面图形绘制维度的硬件能力数据包括平面图形的像素数据;处理器1102加载计算机可读存储介质1101中的sdk执行从n个维度收集终端的硬件能力数据的步骤时,具体执行如下步骤:

创建平面绘图画布标签,并根据平面绘图画布标签获取平面图形的绘制上下文;

采用平面图形的绘制上下文中进行平面图形的绘制;

获取绘制得到的平面图形的像素数据。

在一种实施方式中,n个维度包括立体图像绘制维度,立体图像绘制维度的硬件能力数据包括立体图像的像素数据;处理器1102加载计算机可读存储介质1101中的sdk执行从n个维度收集终端的硬件能力数据的步骤时,具体执行如下步骤:

创建立体绘图画布标签,并根据立体绘图画布标签获取立体图像的绘制上下文;

根据立体图像的绘制上下文创建三角形顶点数据,并配置和编译着色器;以及,

调用立体图像的绘制上下文中的绘制接口对三角形顶点数据和着色器进行渲染,生成立体图像;

获取立体图像的像素数据。

在一种实施方式中,立体图像绘制维度的硬件能力数据还包括立体图像的绘图协议信息;处理器1102加载计算机可读存储介质1101中的sdk执行从n个维度收集终端的硬件能力数据的步骤时,还执行如下步骤:

根据立体图像的绘制上下文获取立体图像的绘图协议信息,立体图像的绘图协议信息包括立体图像的绘图协议的基本信息和扩展信息。

在一种实施方式中,处理器1102加载计算机可读存储介质1101中的sdk执行对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹的步骤时,具体执行如下步骤:

将n个维度的硬件能力数据设为输入参数;

采用指纹生成算法对输入参数进行运算处理,生成终端的设备指纹。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备获取终端的硬件标识;若获取硬件标识失败,则从n(n为大于1的整数)个维度收集终端的硬件能力数据,对n个维度的硬件能力数据进行融合运算,生成终端的设备指纹;首先,设备指纹的生成过程是在小程序中实现的,无需与其他设备(如第三方)进行交互,这样可无需联网环境要求,且能够保证设备指纹及设备指纹的生成过程的安全性;另外,n个维度的硬件能力数据可以唯标识终端的n种硬件能力,那么数据处理设备依赖于n个维度的硬件能力数据来生成设备指纹,该依赖的数据能够较全面地、固定地反映终端的底层硬件能力,不随终端的操作系统的变化而改变,这就有效提升了设备指纹的唯一性。

在另一个实施例中,处理器1102加载计算机可读存储介质1101中的sdk,并执行如下步骤:

获取目标应用程序的业务请求;目标应用程序是一种免安装的应用程序,且目标应用程序属于终端中的一个应用客户端中的子应用程序;

获取终端的设备指纹,终端的设备指纹是采用上述图1-图2所示实施例中的方法生成的;

向服务器发送业务请求,业务请求中携带终端的设备指纹,使得服务器根据终端的设备指纹对业务请求进行风控检测,并根据风控检测结果对业务请求进行处理。

本申请实施例中,由集成在目标应用程序(即小程序)中的数据处理设备来生成终端的设备指纹,该设备指纹具备良好的唯一性,并且,该终端的设备指纹可被应用于风控管理场景中,通过对终端的设备指纹执行风控策略(如设备黑名单库),能够实现对小程序中的业务的风控管理,提升小程序的业务安全性。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图1-图2及图7所示实施例中的数据处理方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

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