一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种生成浏览器指纹的方法、识别浏览器的方法和装置与流程

2022-04-25 01:07:40 来源:中国专利 TAG:


1.本发明涉及浏览器技术领域,尤其涉及一种生成浏览器指纹的方法、识别浏览器的方法和装置。


背景技术:

2.在对浏览器客户端进行用户认证时,可能会出现token与cookie劫持和不同代理使用的情况,这种情况给用户账号的安全产生威胁。为此,通过浏览器指纹技术,可以对浏览器进行辨别,进而在浏览器层面保证用户信息的安全。
[0003]“浏览器指纹”一种通过浏览器对网站可见的配置和设置信息来跟踪web浏览器的方法,具有个体辨识度,可以通过浏览器指纹来辨别浏览器。相关技术中,获取浏览器具有辨识度的信息,进行相关运算得出的值就是浏览器指纹。辨识度的信息比如可以是ua(user-agent,用户代理)、时区、地理位置或者是使用的语言等。
[0004]
但是,这种方式需要不断增加浏览器的特征值来实现,操作复杂,并且,选取的辨识度的信息直接影响浏览器指纹的准确性和安全性。


技术实现要素:

[0005]
本发明示例性的实施方式中提供一种生成浏览器指纹的方法、识别浏览器的方法和装置,无需浏览器的辨识度信息,操作简单,且确定的浏览器的指纹的准确性和安全性较高。
[0006]
根据示例性的实施方式中的第一方面,提供一种生成浏览器指纹的方法,应用于终端设备,所述终端设备中至少配置一个浏览器,该方法包括:
[0007]
根据所述至少一个浏览器对来自服务器的预设文件的执行结果,确定每个浏览器的接口调用信息;以及,根据所述至少一个浏览器对来自所述服务器的不同参数的动画文件的执行结果,确定每个浏览器对应的帧率集合;
[0008]
针对每个浏览器,基于所述浏览器的接口调用信息,应用二分类算法确定所述浏览器的第一指纹信息;其中,所述第一指纹信息为所述浏览器的接口调用状态指标集合;
[0009]
针对每个浏览器,根据所述浏览器对应的帧率集合中每个帧率的概率确定所述浏览器的第二指纹信息;其中,所述第二指纹信息为所述浏览器对应的目标帧率范围集合;
[0010]
针对每个浏览器,根据所述浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。
[0011]
在一些示例性的实施方式中,所述根据所述浏览器的第一指纹信息和第二指纹信息生成浏览器指纹,包括:
[0012]
应用sm3算法对所述第一指纹信息和所述第二指纹信息进行处理,生成浏览器指纹。
[0013]
在一些示例性的实施方式中,所述基于所述浏览器的接口调用信息,应用二分类算法确定所述浏览器的第一指纹信息,包括:
[0014]
基于所述浏览器的接口调用信息,应用二分类算法确定所述浏览器的接口调用状态指标中的至少一个第一类调用状态指标和至少一个第二类调用状态指标;
[0015]
确定所述至少一个第一类调用状态指标和至少一个第二类调用状态指标构成的所述浏览器的接口调用状态指标集合为第一指纹信息。
[0016]
在一些示例性的实施方式中,所述根据所述浏览器对应的帧率集合中每个帧率的概率确定所述浏览器的第二指纹信息,包括:
[0017]
确定所述浏览器对应的帧率集合中每个帧率的概率;
[0018]
确定概率最大的至少一个帧率构成的第一帧率集合;
[0019]
将预设帧率集合与所述第一帧率集合取交集,得到第二帧率集合;
[0020]
应用均值算法对所述第二帧率集合处理,得到至少一个帧率阈值;
[0021]
针对每个帧率阈值,根据所述帧率阈值和预设帧率梯度确定所述帧率阈值对应的目标帧率范围;
[0022]
确定各个目标帧率范围构成的目标帧率范围集合为第二指纹信息。
[0023]
在一些示例性的实施方式中,在所述应用二分类算法确定所述浏览器的第一指纹信息之前,所述方法还包括:
[0024]
应用预设加密算法对所述浏览器的接口调用信息进行加密。
[0025]
在一些示例性的实施方式中,所述接口调用信息包括所述浏览器对不同性能指标的兼容状态。
[0026]
根据示例性的实施方式中的第二方面,提供一种识别浏览器的方法,该方法应用于服务器,包括:
[0027]
确定所述服务器中存储的至少两个浏览器指纹;其中,每个浏览器指纹是基于第一方面所述的方法确定的;
[0028]
针对任意两个浏览器,匹配所述两个浏览器指纹,并确定匹配结果;
[0029]
若匹配成功,则确定所述两个浏览器的运行环境相同,且配置于同一个终端设备;
[0030]
若匹配失败,且所述两个浏览器指纹中的第一指纹信息相同且第二指纹信息不同,则确定所述两个浏览器的运行环境相同,且配置于不同的终端设备;
[0031]
若匹配失败,且所述两个浏览器指纹中的第一指纹信息不同且第二指纹信息相同,则确定所述两个浏览器的运行环境不同,且配置于相同的终端设备。
[0032]
在一些示例性的实施方式中,所述运行环境包括浏览器类型和浏览器版本。
[0033]
根据示例性的实施方式中的第三方面,提供一种生成浏览器指纹的装置,集成于终端设备,所述终端设备中至少配置一个浏览器,所述装置包括:
[0034]
文件执行模块,用于根据所述至少一个浏览器对来自服务器的预设文件的执行结果,确定每个浏览器的接口调用信息;以及,根据所述至少一个浏览器对来自所述服务器的不同参数的动画文件的执行结果,确定每个浏览器对应的帧率集合;
[0035]
第一信息确定模块,用于针对每个浏览器,基于所述浏览器的接口调用信息,应用二分类算法确定所述浏览器的第一指纹信息;其中,所述第一指纹信息为所述浏览器的接口调用状态指标集合;
[0036]
第二信息确定模块,用于针对每个浏览器,根据所述浏览器对应的帧率集合中每个帧率的概率确定所述浏览器的第二指纹信息;其中,所述第二指纹信息为所述浏览器对
应的目标帧率范围集合;
[0037]
指纹生成模块,用于针对每个浏览器,根据所述浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。
[0038]
在一些示例性的实施方式中,所述指纹生成模块具体用于:
[0039]
应用sm3算法对所述第一指纹信息和所述第二指纹信息进行处理,生成浏览器指纹。
[0040]
在一些示例性的实施方式中,所述第一信息确定模块具体用于:
[0041]
基于所述浏览器的接口调用信息,应用二分类算法确定所述浏览器的接口调用状态指标中的至少一个第一类调用状态指标和至少一个第二类调用状态指标;
[0042]
确定所述至少一个第一类调用状态指标和至少一个第二类调用状态指标构成的所述浏览器的接口调用状态指标集合为第一指纹信息。
[0043]
在一些示例性的实施方式中,所述第二信息确定模块具体用于:
[0044]
确定所述浏览器对应的帧率集合中每个帧率的概率;
[0045]
确定概率最大的至少一个帧率构成的第一帧率集合;
[0046]
将预设帧率集合与所述第一帧率集合取交集,得到第二帧率集合;
[0047]
应用均值算法对所述第二帧率集合处理,得到至少一个帧率阈值;
[0048]
针对每个帧率阈值,根据所述帧率阈值和预设帧率梯度确定所述帧率阈值对应的目标帧率范围;
[0049]
确定各个目标帧率范围构成的目标帧率范围集合为第二指纹信息。
[0050]
在一些示例性的实施方式中,还包括加密模块,用于在所述应用二分类算法确定所述浏览器的第一指纹信息之前,应用预设加密算法对所述浏览器的接口调用信息进行加密。
[0051]
在一些示例性的实施方式中,所述接口调用信息包括所述浏览器对不同性能指标的兼容状态。
[0052]
根据示例性的实施方式中的第四方面,提供一种识别浏览器的装置,该装置集成于所述服务器,包括:
[0053]
指纹确定模块,用于确定所述服务器中存储的至少两个浏览器指纹;其中,每个浏览器指纹是基于第三方面所述的装置确定的;
[0054]
匹配模块,用于针对任意两个浏览器,匹配所述两个浏览器指纹,并确定匹配结果;所述匹配模块具体用于:
[0055]
若匹配成功,则确定所述两个浏览器的运行环境相同,且配置于同一个终端设备;
[0056]
若匹配失败,且所述两个浏览器指纹中的第一指纹信息相同且第二指纹信息不同,则确定所述两个浏览器的运行环境相同,且配置于不同的终端设备;
[0057]
若匹配失败,且所述两个浏览器指纹中的第一指纹信息不同且第二指纹信息相同,则确定所述两个浏览器的运行环境不同,且配置于相同的终端设备。
[0058]
在一些示例性的实施方式中,所述运行环境包括浏览器类型和浏览器版本。
[0059]
根据示例性的实施方式中的第五方面,提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的生成浏览器指纹的方法的步骤。
[0060]
根据示例性的实施方式中的第六方面,提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第二方面所述的识别浏览器的方法的步骤。
[0061]
根据示例性的实施方式中的第七方面,提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序指令,当所述指令在计算机上运行时,使得所述计算机执行如第一方面或第二方面所述的方法。
[0062]
根据示例性的实施方式中的第八方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行第一方面或第二方面的任一项实施例中所示的方法。
[0063]
本技术实施例具备如下有益效果:
[0064]
由于同一类型且同一版本的浏览器在执行预设文件后,接口调用信息相同,因此,对于每个浏览器,基于所述浏览器的接口调用信息,应用二分类算法确定该浏览器的接口调用状态指标集合,将该集合作为第一指纹信息,可以从浏览器接口调用的角度来区分各个浏览器。另外,浏览器执行动画文件后得到的帧率情况和浏览器所在终端设备的硬件配置有关,因此,根据所述浏览器对应的帧率集合中每个帧率的概率确定的浏览器对应的目标帧率范围集合,将该集合作为第二指纹信息,可以从浏览器所在终端设备的角度来区分各个浏览器。最后,将每个浏览器的第一指纹信息和第二指纹信息生成该浏览器的浏览器指纹。这样,基于浏览器的版本、型号以及浏览器所在终端的硬件性能差异得到的浏览器指纹,无需额外增加浏览器的辨识度信息,操作简单,且从多个角度出发,得到的浏览器指纹的准确性和安全性更高。
附图说明
[0065]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0066]
图1示例性示出了本发明实施例提供的一种生成浏览器指纹的方法的应用场景图;
[0067]
图2示例性示出了本发明实施例提供的一种生成浏览器指纹的方法的流程图;
[0068]
图3示例性示出了本发明实施例提供的一种生成第二指纹信息的方法的流程图;
[0069]
图4示例性示出了本发明实施例提供的一种生成浏览器指纹的信令流程图;
[0070]
图5示例性示出了本发明实施例提供的一种识别浏览器的方法的流程图;
[0071]
图6示例性示出了本发明实施例提供的一种生成浏览器指纹的装置的结构示意图;
[0072]
图7示例性示出了本发明实施例提供的一种识别浏览器的装置的结构示意图;
[0073]
图8示例性示出了本发明实施例提供的一种终端设备的结构示意图;
[0074]
图9示例性示出了本发明实施例提供的一种服务器的结构示意图。
具体实施方式
[0075]
下面将结合附图对本技术实施例中的技术方案进行清除、详尽地描述。其中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个。
[0076]
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0077]
(1)api(application programming interface,应用程序接口)是一些预先定义的接口(如函数、http接口),或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。为方便表述,以下将“应用程序接口”简称为“接口”。
[0078]
在具体实践过程中,在对浏览器客户端进行用户认证时,可能会出现token与cookie劫持和不同代理使用的情况,这种情况给用户账号的安全产生威胁。为此,通过浏览器指纹技术,可以对浏览器进行辨别,进而在浏览器层面保证用户信息的安全。
[0079]“浏览器指纹”一种通过浏览器对网站可见的配置和设置信息来跟踪web浏览器的方法,具有个体辨识度,可以通过浏览器指纹来辨别浏览器。相关技术中,获取浏览器具有辨识度的信息,进行相关运算得出的值就是浏览器指纹。辨识度的信息比如可以是ua(user-agent,用户代理)、时区、地理位置或者是使用的语言等。
[0080]
但是,这种方式需要不断增加浏览器的特征值来实现,操作复杂,并且,选取的辨识度的信息直接影响浏览器指纹的准确性。
[0081]
为此,本技术实施例提供了一种操作简单且准确性高、安全性高的生成浏览器指纹的方法。具体的,考虑到一个终端设备(比如一台电脑)可以安装不同类型的浏览器,比如ie11和谷歌2021,在用户不更改浏览器设置的情况下,同一类型的同一版本的浏览器的接口相同。另外,每台设备的cpu(central processing unit,中央处理器)、gpu(graphics processing unit,图形处理器)和其他硬件,决定了设备的整体计算能力,而动态的动画的掉帧情况与设备的cpu、gpu和其他硬件有关,可以用来区分不同的设备。因此,从这两个角度出发,本技术提出的浏览器指纹由两部分(第一指纹信息和第二指纹信息),其中,第一指纹信息是根据浏览器执行预设文件后得到的接口调用信息确定的,第二指纹调用信息是根据浏览器执行动画文件后得到各个帧率的概率确定的。这样得到的浏览器指纹,一方面简化了操作,另一方面还涵盖了软件和硬件层面的关联信息,更准确和安全。
[0082]
在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
[0083]
参考图1,其为本技术实施例提供的一种生成浏览器指纹的方法的应用场景示意图。该应用场景包括多个终端设备101(包括终端设备101-1、终端设备101-2、
……
终端设备
101-n)、服务器102。其中,终端设备101、服务器102之间通过无线或有线网络连接,终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视等电子设备。服务器102可以是一台服务器、若干台服务器组成的服务器集群或云计算中心。服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0084]
以终端设备101-1为例,服务器102下发预设文件和动画文件到终端设备101-1,终端设备101-1中各个浏览器执行预设文件,得到浏览器的接口调用信息;终端设备101-1中各个浏览器执行动画文件,得到浏览器对应的帧率集合。针对每个浏览器,基于浏览器的接口调用信息,应用二分类算法确定浏览器的第一指纹信息;第一指纹信息为浏览器的接口调用状态指标集合;根据浏览器对应的帧率集合中每个帧率的概率确定浏览器的第二指纹信息;第二指纹信息为浏览器对应的目标帧率范围集合;根据浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。最后,各个浏览器可以通过终端将自身的浏览器指纹上传至服务器102,以便服务器102对各个浏览器指纹进行识别。
[0085]
另外,需要说明的是,终端设备也可以将第一指纹信息和第二指纹信息发送至服务器,由服务器对这两个信息进行合成,生成浏览器指纹。这里只是举例说明,不形成限定。
[0086]
当然,本技术实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其它可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。
[0087]
为进一步说明本技术实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本技术实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本技术实施例提供的执行顺序。
[0088]
下面结合图1所示的应用场景,对本技术实施例提供的技术方案进行说明。
[0089]
参考图2,本技术实施例提供一种生成浏览器指纹的方法,包括以下步骤:
[0090]
s201、根据至少一个浏览器对来自服务器的预设文件的执行结果,确定每个浏览器的接口调用信息;以及,根据至少一个浏览器对来自服务器的不同参数的动画文件的执行结果,确定每个浏览器对应的帧率集合。
[0091]
s202、针对每个浏览器,基于浏览器的接口调用信息,应用二分类算法确定浏览器的第一指纹信息;其中,第一指纹信息为浏览器的接口调用状态指标集合。
[0092]
s203、针对每个浏览器,根据浏览器对应的帧率集合中每个帧率的概率确定浏览器的第二指纹信息;其中,第二指纹信息为浏览器对应的目标帧率范围集合。
[0093]
s204、针对每个浏览器,根据浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。
[0094]
由于同一类型且同一版本的浏览器在执行预设文件后,接口调用信息相同,因此,对于每个浏览器,基于浏览器的接口调用信息,应用二分类算法确定该浏览器的接口调用状态指标集合,将该集合作为第一指纹信息,可以从浏览器接口调用的角度来区分各个浏
览器。另外,浏览器执行动画文件后得到的帧率情况和浏览器所在终端设备的硬件配置有关,因此,根据浏览器对应的帧率集合中每个帧率的概率确定的浏览器对应的目标帧率范围集合,将该集合作为第二指纹信息,可以从浏览器所在终端设备的角度来区分各个浏览器。最后,将每个浏览器的第一指纹信息和第二指纹信息生成该浏览器的浏览器指纹。这样,基于浏览器的版本、型号以及浏览器所在终端的硬件性能差异得到的浏览器指纹,无需额外增加浏览器的辨识度信息,操作简单,且从多个角度出发,得到的浏览器指纹的准确性和安全性更高。
[0095]
涉及到s201,以一个终端设备中配置有两个浏览器为例,ie11和谷歌2021,服务器将预设文件和动画文件发送至终端设备,该发送过程可以是服务器周期性下发的,也可以是在接收到终端设备的请求后下发的。其中,预设文件可以是动画类型的文件,也可以是其他类型的文件,只要是能为浏览器提供接口调用功能即可,并且,预设文件和动画文件可以相同也可以不同。
[0096]
这样,终端设备接收到服务器下发的预设文件后,通过浏览器执行该预设文件,获取各个浏览器的执行结果,进而确定每个浏览器的接口调用信息。示例性的,接口调用信息包括浏览器对不同性能指标的兼容状态,比如对2d动画或游戏的支持方式情况,或者,对3d动画或游戏的支持情况等。另外,终端设备在接收到服务器下发的动画文件后,通过调节动画文件的参数,执行不同参数下动画文件,得到多个帧率,这样,针对每个浏览器会得到一个帧率集合。在实际的应用过程中,也可以通过向服务器下发多个不同动画文件的方式来得到多个帧率,但是改变同一动画文件的参数来得到多个帧率的方式,操作简单。
[0097]
涉及到s202,为第一指纹信息的确定过程。由于每个浏览器的确定第一指纹信息的方式相同,接下来均用于一个浏览器为例进行说明。其中,基于浏览器的接口调用信息,应用二分类算法确定浏览器的接口调用状态指标集合,再将该浏览器的接口调用状态指标集合作为第一指纹信息。
[0098]
另外,为了提高数据安全,避免了明文获取被模拟和篡改,应用二分类算法确定浏览器的第一指纹信息之前,可以应用预设加密算法对浏览器的接口调用信息进行加密。该预设加密算法可以是相关技术中的加密算法,在此不赘述。
[0099]
具体的,基于浏览器的接口调用信息,应用二分类算法确定浏览器的接口调用状态指标中的至少一个第一类调用状态指标和至少一个第二类调用状态指标;确定至少一个第一类调用状态指标和至少一个第二类调用状态指标构成的浏览器的接口调用状态指标集合为第一指纹信息。
[0100]
其中,第一类调用状态指标比如是支持,用1表示,第二类调用状态指标比如是不支持,用0表示。在接口调用信息为对2d动画或游戏的支持方式情况中,比如支持,则确定在这个维度上的浏览器的接口调用状态指标为第一类调用状态指标为1;在接口调用信息为对3d动画或游戏的支持方式情况中,比如不支持,则确定在这个维度上的浏览器的接口调用状态指标为第二类调用状态指标为。如此,在这个例子中,确定的浏览器的接口调用状态指标集合为{1,0},该集合作为第一指纹信息。在实际的应用过程中,支持情况还有其他,这里用2d和3d只是作为示例来进行说明。
[0101]
在实际的应用过程中,浏览器的接口调用状态指标随着浏览器的版本不同而迭代变化,同一个类型且同一个版本的浏览器,应用二分类算法处理,得到一个lr(逻辑回归,
logistic regression)二分类模型,举例说明二分类方法的实现过程:
[0102]
1=canvas.fillrect(第一次分类判断)
[0103]
1=canvasrenderingcontext2d.shadowblur(第二次分类判断)
[0104]
0=canvas.createimagedata(第三次分类判断)
[0105]
在这个示例中,得到的第一指纹信息为{1,1,0},在实际的应用过程中,还可以包括多次判断过程。该二分类过程,无需使用浏览器信息明文,可以防止篡改和破解。
[0106]
涉及到s203,为第二指纹信息的确定过程。由于每个浏览器的确定第一指纹信息的方式相同,接下来均用于一个浏览器为例进行说明。其中,根据浏览器对应的帧率集合中每个帧率的概率确定浏览器的第二指纹信息;其中,第二指纹信息为浏览器对应的目标帧率范围集合。
[0107]
具体的,参考图3进行说明第二指纹信息的确定过程。
[0108]
s301、确定概率最大的至少一个帧率构成的第一帧率集合。
[0109]
由于对动画文件进行了参数调整,这样,每个参数对应的该动画文件可以得到一个帧率。在一个具体的例子中,第一参数对应的动画文件中的对象的数量为100,第二参数对应的动画文件中的对象的数量为200,第三参数对应的动画文件中的对象的数量为500等。
[0110]
示例性的,可以根据贝叶斯公式确定每个帧率的概率。进而确定概率最大的帧率,在实际的应用过程中,概率最大时对应的帧率可能为一个,也可能为多个。因此,将概率最大的至少一个帧率构成的集合称为第一帧率集合。在一个具体的例子中,第一帧率集合用a表示,比如,a={1,6,7,9,27,28,29,53,55,56,57,59}。
[0111]
s302、将预设帧率集合与第一帧率集合取交集,得到第二帧率集合。
[0112]
其中,预设帧率集合比如可以是先确定一个常数阈值帧率,比如是60fps,再将从1fps到60fps,任意两个帧率之间的间隔为1fps确定预设帧率集合为b={0,1,2,3,

,59,60}。进而确定交集为第二帧率集合为c={1,6,7,9,27,28,29,53,55,56,57,59}。
[0113]
s303、应用均值算法对第二帧率集合处理,得到至少一个帧率阈值。为了提高准确性,可以先对第二帧率集合进行剔除异常数据的处理,第二帧率集合仍以上述集合c为例,则在这个具体的例子中,异常数据为集合c中的1fps,则剔除集合c中的1,得到c1={6,7,9,27,28,29,53,55,56,57,59}。
[0114]
再应用均值算法对处理后的第二帧率集合进行处理,得到至少一个帧率,示例性的,均值算法比如是k-means算法。在一个具体的例子中,比如聚类数目k取3,则得到的帧率阈值为56fps、28fps和7fps。
[0115]
s304、针对每个帧率阈值,根据帧率阈值和预设帧率梯度确定帧率阈值对应的目标帧率范围。
[0116]
其中,预设帧率阈值梯度为5fps,比如,帧率阈值为56fps,确定56fps所在的目标帧率范围为55fps到60fps;确定28fps所在的目标帧率范围为25fps到30fps;确定7fps所在的目标帧率范围为5fps到10fps。如此,可以得到三个目标帧率范围。
[0117]
s305、确定各个目标帧率范围构成的目标帧率范围集合为第二指纹信息。
[0118]
如上示例,确定第二指纹信息为目标帧率范围集合{55~60、25~30、5~10}。这样,根据不同参数下执行动画文件的过程,获取到浏览器的掉帧情况(参数不同,帧率不
同),该掉帧情况与硬件与整机系统情况相关。
[0119]
需要说明的是,上述集合中的各元素的数值的单位均为fps,为了方便,未全部示出。
[0120]
这样,针对每个浏览器,确定了第一指纹信息和第二指纹信息。
[0121]
涉及到s204,针对每个浏览器,根据浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。具体的,应用国产哈希算法sm3对第一指纹信息和第二指纹信息进行处理,生成浏览器指纹。
[0122]
为了使本技术的技术方案更容易理解,以一个终端设备101-1为例,图4示出了一种生成浏览器指纹的信令流程图,图4至少包括如下步骤:
[0123]
s401、服务器将预设文件和动画文件发送至终端设备。
[0124]
s402、终端设备根据至少一个浏览器对预设文件的执行结果,确定每个浏览器的接口调用信息;以及,根据至少一个浏览器对的不同参数的动画文件的执行结果,确定每个浏览器对应的帧率集合。
[0125]
s403、针对每个浏览器,终端设备基于浏览器的接口调用信息,应用二分类算法确定浏览器的第一指纹信息;其中,第一指纹信息为浏览器的接口调用状态指标集合。
[0126]
s404、针对每个浏览器,终端设备根据浏览器对应的帧率集合中每个帧率的概率确定浏览器的第二指纹信息;其中,第二指纹信息为浏览器对应的目标帧率范围集合。
[0127]
s405、针对每个浏览器,终端设备根据浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。
[0128]
s406、终端设备将各个浏览器的浏览器指纹发送至服务器。
[0129]
如上,是针对一个终端设备来说,其中配置的各个浏览器的浏览器指纹的生成过程,该过程减少了浏览器代理文字版本修改而导致的出错的情况。若还存在其他终端设备,则生成浏览器指纹的方式和上述方式相同。另外,在实际的应用过程中,各个终端设备可以将自身的浏览器指纹上传至服务器,以供服务器进行识别,用来通过浏览器指纹的不同来确定浏览器的类型、版本以及所配置的终端设备的硬件情况。
[0130]
接下来,参考图5,提出了一种识别浏览器的方法的流程图:
[0131]
s501、确定服务器中存储的至少两个浏览器指纹;其中,每个浏览器指纹是基于生成浏览器指纹的方法确定的。
[0132]
s502、针对任意两个浏览器,匹配两个浏览器指纹,并确定匹配结果。
[0133]
由于大于两个浏览器指纹的匹配过程的本质也是两个浏览器指纹的匹配过程,因此,本技术实施例中,用两个浏览器的指纹匹配过程进行说明。
[0134]
s5031、若匹配成功,则确定两个浏览器的运行环境相同,且配置于同一个终端设备。
[0135]
第一种情况,匹配成功,则表明浏览器指纹中的第一指纹信息和第二指纹信息分别匹配成功。由于在浏览器指纹生成时,第一指纹信息是根据浏览器的接口调用信息确定的,则第一指纹信息匹配成功,则可以确定两个浏览器的运行环境相同;第二指纹信息是根据执行动画文件过程中的帧率确定的,而该帧率是与终端设备的硬件决定的,则第二指纹信息匹配成功,则可以确定两个浏览器配置为同一个终端设备。
[0136]
示例性的,运行环境包括浏览器类型和浏览器版本。
[0137]
s5032、若匹配失败,且两个浏览器指纹中的第一指纹信息相同且第二指纹信息不同,则确定两个浏览器的运行环境相同,且配置于不同的终端设备。
[0138]
第二种情况,匹配失败,且两个浏览器指纹中的第一指纹信息相同且第二指纹信息不同,通过第一种情况的描述可知,这种情况可以确定两个浏览器的运行环境相同,且配置于不同的终端设备。
[0139]
s5033、若匹配失败,且两个浏览器指纹中的第一指纹信息不同且第二指纹信息相同,则确定两个浏览器的运行环境不同,且配置于相同的终端设备。
[0140]
第二种情况,匹配失败,且两个浏览器指纹中的第一指纹信息不同且第二指纹信息相同,通过第一种情况的描述可知,这种情况可以确定两个浏览器的运行环境不同,且配置于相同的终端设备。
[0141]
本技术实施例,应用前述方法确定的浏览器指纹,在对多个指纹进行识别是,提高识别不同浏览器的指纹匹配度,不仅可以识别出同一个终端设备中的浏览器的版本或者型号不同,还可以识别多个浏览器是否属于同一个终端设备。
[0142]
另外,需要说明的是,上述匹配过程是以服务器为例进行说明的,在实际的应用过程中,终端设备也可以实现匹配过程。不过,终端设备只能对浏览器指纹中的第一指纹信息的识别结果进行处理,来确定任意两个浏览器指纹对应的浏览器的运行环境是否相同。至于两个浏览器是否属于同一个终端设备,还需要服务器来判断。
[0143]
综上,无论是同一个终端设备中的不同型号或者不同版本的浏览器,还是不同终端设备中的多个浏览器,均可以应用本技术实施例中的方法来生成浏览器指纹,以及识别各个浏览器。因此,本技术实施例中的方法可以做到跨浏览器识别。
[0144]
整体来说,本技术实施例中的识别浏览器的方法,可应用于用户安全登录、登录防拦截等场景中,尤其是要求绑定固定终端设备执行的用户;还可以适用于其他特定场景下的操作或拦截等场景中。通过动态采集硬件帧率,保证了使用浏览器的用户的安全性与对不同终端设备中的浏览器的识别能力。增加了判断维度,提高跨浏览器识别的准确性和安全性。
[0145]
如图6所示,基于相同的发明构思,本发明实施例提供一种生成浏览器指纹的装置,集成于终端设备,终端设备中至少配置一个浏览器,装置包括文件执行模块61、第一信息确定模块62、第二信息确定模块63和指纹生成模块64。
[0146]
其中,文件执行模块61,用于根据至少一个浏览器对来自服务器的预设文件的执行结果,确定每个浏览器的接口调用信息;以及,根据至少一个浏览器对来自服务器的不同参数的动画文件的执行结果,确定每个浏览器对应的帧率集合;
[0147]
第一信息确定模块62,用于针对每个浏览器,基于浏览器的接口调用信息,应用二分类算法确定浏览器的第一指纹信息;其中,第一指纹信息为浏览器的接口调用状态指标集合;
[0148]
第二信息确定模块63,用于针对每个浏览器,根据浏览器对应的帧率集合中每个帧率的概率确定浏览器的第二指纹信息;其中,第二指纹信息为浏览器对应的目标帧率范围集合;
[0149]
指纹生成模块64,用于针对每个浏览器,根据浏览器的第一指纹信息和第二指纹信息生成浏览器指纹。
[0150]
在一些示例性的实施方式中,指纹生成模块64具体用于:
[0151]
应用sm3算法对第一指纹信息和第二指纹信息进行处理,生成浏览器指纹。
[0152]
在一些示例性的实施方式中,第一信息确定模块62具体用于:
[0153]
基于浏览器的接口调用信息,应用二分类算法确定浏览器的接口调用状态指标中的至少一个第一类调用状态指标和至少一个第二类调用状态指标;
[0154]
确定至少一个第一类调用状态指标和至少一个第二类调用状态指标构成的浏览器的接口调用状态指标集合为第一指纹信息。
[0155]
在一些示例性的实施方式中,第二信息确定模块63具体用于:
[0156]
确定浏览器对应的帧率集合中每个帧率的概率;
[0157]
确定概率最大的至少一个帧率构成的第一帧率集合;
[0158]
将预设帧率集合与第一帧率集合取交集,得到第二帧率集合;
[0159]
应用均值算法对第二帧率集合处理,得到至少一个帧率阈值;
[0160]
针对每个帧率阈值,根据帧率阈值和预设帧率梯度确定帧率阈值对应的目标帧率范围;
[0161]
确定各个目标帧率范围构成的目标帧率范围集合为第二指纹信息。
[0162]
在一些示例性的实施方式中,还包括加密模块,用于在应用二分类算法确定浏览器的第一指纹信息之前,应用预设加密算法对浏览器的接口调用信息进行加密。
[0163]
在一些示例性的实施方式中,接口调用信息包括浏览器对不同性能指标的兼容状态。
[0164]
由于该装置即是本发明实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0165]
如图7所示,基于相同的发明构思,本发明实施例提供一种识别浏览器的装置,该装置集成于服务器,包括指纹确定模块71和匹配模块72。
[0166]
指纹确定模块71,用于确定服务器中存储的至少两个浏览器指纹;其中,每个浏览器指纹是基于第三方面的装置确定的;
[0167]
匹配模块72,用于针对任意两个浏览器,匹配两个浏览器指纹,并确定匹配结果;匹配模块72具体用于:
[0168]
若匹配成功,则确定两个浏览器的运行环境相同,且配置于同一个终端设备;
[0169]
若匹配失败,且两个浏览器指纹中的第一指纹信息相同且第二指纹信息不同,则确定两个浏览器的运行环境相同,且配置于不同的终端设备;
[0170]
若匹配失败,且两个浏览器指纹中的第一指纹信息不同且第二指纹信息相同,则确定两个浏览器的运行环境不同,且配置于相同的终端设备。
[0171]
在一些示例性的实施方式中,运行环境包括浏览器类型和浏览器版本。
[0172]
由于该装置即是本发明实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0173]
基于与上述一种生成浏览器指纹的方法相同的发明构思,本技术实施例还提供了一种终端设备,该终端设备具体(可以为智能设备内部的控制设备或控制系统,也可以是与智能设备通信的外部设备)可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)等。如图8所示,该终端设备可以包括处理器81
和存储器82。
[0174]
处理器81可以是通用处理器,例如中央处理器(cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0175]
存储器82作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器82还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0176]
基于与上述一种识别浏览器的方法相同的发明构思,本技术实施例还提供了一种服务器,该服务器具体可以为云端服务器或者本地服务器等。如图9所示,该终端设备可以包括处理器91和存储器92。
[0177]
处理器91可以是通用处理器,例如中央处理器(cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0178]
存储器92作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器92还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0179]
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过
程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
[0180]
或者,本技术上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本技术各个实施例方法的全部或部分。而前述的存储介质包括:移动存储设备、随机存取存储器(ram,random access memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等各种可以存储程序代码的介质。
[0181]
在一些可能的实施方式中,本公开提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本公开各种示例性实施方式的方法中的步骤,例如,计算机设备可以执行本公开实施例所记载的交易信息处理方法。程序产品可以采用一个或多个可读介质的任意组合。
[0182]
以上实施例仅用以对本技术的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本技术实施例的方法,不应理解为对本技术实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本技术实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献