CN110162729B - 建立浏览器指纹以及识别浏览器类型的方法、装置 - Google Patents

建立浏览器指纹以及识别浏览器类型的方法、装置 Download PDF

Info

Publication number
CN110162729B
CN110162729B CN201910272931.XA CN201910272931A CN110162729B CN 110162729 B CN110162729 B CN 110162729B CN 201910272931 A CN201910272931 A CN 201910272931A CN 110162729 B CN110162729 B CN 110162729B
Authority
CN
China
Prior art keywords
browser
code
code sequence
type
execution result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910272931.XA
Other languages
English (en)
Other versions
CN110162729A (zh
Inventor
肖健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Priority to CN201910272931.XA priority Critical patent/CN110162729B/zh
Publication of CN110162729A publication Critical patent/CN110162729A/zh
Application granted granted Critical
Publication of CN110162729B publication Critical patent/CN110162729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种建立浏览器指纹的方法,所述方法包括:获取代码片段构成代码序列;根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合;利用同一类型各浏览器执行代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别浏览器的类型。本发明还提供了一种识别浏览器类型的方法,所述方法包括:获取建立浏览器指纹时所使用的代码序列;根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合;根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型。本发明能够丰富所建立的浏览器指纹中包含的信息,降低浏览器指纹被更改的可能性,从而提升浏览器类型的识别准确度。

Description

建立浏览器指纹以及识别浏览器类型的方法、装置
【技术领域】
本发明涉及互联网技术领域,尤其涉及一种建立浏览器指纹以及识别浏览器类型的方法、装置、设备和计算机存储介质。
【背景技术】
对于互联网世界来说,浏览器早已成为最重要的信息获取工具。在一些应用场景中,例如在对抗网络爬虫或者对抗资源访问量的恶意刷取时,往往需要准确地识别用户所使用的浏览器的类型,从而防止浏览器的伪装。
在现有技术中,通常根据浏览器的指纹来识别浏览器的类型,例如通过浏览器的屏幕分辨率、浏览器的时区、浏览器的字体信息等来确定浏览器的类型。但由上述信息构成的浏览器指纹较为单一,且极容易被更改,因此对于使用已有的浏览器指纹来准确地识别浏览器的类型来说十分困难。
【发明内容】
有鉴于此,本发明提供了一种建立浏览器指纹以及识别浏览器类型的方法、装置、设备和计算机存储介质,用于建立包含丰富信息的浏览器指纹,降低浏览器指纹被更改的可能性,从而提升浏览器类型的识别准确度。
本发明为解决技术问题所采用的技术方案是提供一种建立浏览器指纹的方法,所述方法包括:获取代码片段构成代码序列;根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合;利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别浏览器的类型。
根据本发明一优选实施例,所获取的代码片段为符合ECMAScript的语法标准的代码片段。
根据本发明一优选实施例,所述获取代码片段构成代码序列包括:获取代码片段,并确定该代码片段的分类效果;判断所述代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;根据添加至代码序列的代码片段的分类效果,计算代码序列的信息增益;重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
根据本发明一优选实施例,所述根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合包括:将所述代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果;分别将不同类型的浏览器执行各代码片段的执行结果进行组合,得到不同类型的浏览器执行所述代码序列的执行结果集合。
根据本发明一优选实施例,在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还包括:获取同一类型各浏览器的浏览器环境特征;将所获取的同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行所述代码序列的执行结果集合中,构成对应类型的浏览器的浏览器指纹。
根据本发明一优选实施例,所述浏览器环境特征包括浏览器运行的操作平台、浏览器的名称、浏览器的版本、浏览器所运行的设备型号、浏览器所安装的插件列表中的至少一种。
根据本发明一优选实施例,在得到对应类型的浏览器的浏览器指纹之后,进一步包括:根据所得到的对应类型的浏览器的浏览器指纹构建决策树模型,以用于根据所构建的决策树模型来识别浏览器的类型。
本发明为解决技术问题所采用的技术方案是提供一种识别浏览器类型的方法,所述方法包括:获取建立浏览器指纹时所使用的代码序列;根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合;根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型。
根据本发明一优选实施例,所述根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合包括:将所述代码序列中的代码片段依次输入待识别浏览器,获取待识别浏览器对所输入的代码片段的执行结果;将待识别浏览器执行各代码片段的执行结果进行组合,获取待识别浏览器执行所述代码序列的执行结果集合。
根据本发明一优选实施例,所述根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型包括:计算所述执行结果集合与预先建立的浏览器指纹之间的匹配度;将与所述执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为所述待识别浏览器的类型。
根据本发明一优选实施例,所述根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型包括:根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;利用所构建的决策树模型,根据所述执行结果集合确定所述待识别浏览器的类型。
根据本发明一优选实施例,在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型之前,还包括:获取所述待识别浏览器的浏览器环境特征,并将所获取的浏览器环境特征添加到所述执行结果集合中。
本发明为解决技术问题所采用的技术方案是提供一种建立浏览器指纹的装置,所述装置包括:处理单元,用于获取代码片段构成代码序列;测试单元,用于根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合;建立单元,用于利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别浏览器的类型。
根据本发明一优选实施例,所述处理单元在获取代码片段构成代码序列时,具体执行:获取代码片段,并确定该代码片段的分类效果;判断所述代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;根据添加至代码序列的代码片段的分类效果,计算代码序列的信息增益;重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
根据本发明一优选实施例,所述测试单元在根据所述代码序列分别获取不同类型的浏览器执行所述代码序列的执行结果集合时,具体执行:将代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果;分别将不同类型的浏览器执行各代码片段的执行结果进行组合,得到不同类型的浏览器执行所述代码序列的执行结果集合。
根据本发明一优选实施例,所述建立单元在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还执行:获取同一类型各浏览器的浏览器环境特征;将所获取的同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行所述代码序列的执行结果集合中,构成对应类型的浏览器的浏览器指纹。
本发明为解决技术问题所采用的技术方案是提供一种识别浏览器类型的装置,所述装置包括:获取单元,用于获取建立浏览器指纹时所使用的代码序列;执行单元,用于根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合;识别单元,用于根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型。
根据本发明一优选实施例,所述识别单元在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型时,具体执行:计算所述执行结果集合与所述预先建立的浏览器指纹之间的匹配度;将与所述执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为所述待识别浏览器的类型。
根据本发明一优选实施例,所述识别单元在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型时,具体执行:根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;利用所构建的决策树模型,根据所述执行结果集合确定所述待识别浏览器的类型。
由以上内容可以看出,本发明通过获取代码片段来构成代码序列,并将不同类型的浏览器执行该代码序列的执行结果集合作为浏览器的浏览器指纹,从而丰富了所建立的浏览器指纹中包含的信息,降低了浏览器指纹被更改的可能性,进一步提升了浏览器类型的识别准确度。
【附图说明】
图1为本发明一实施例提供的一种建立浏览器指纹的方法流程图;
图2为本发明一实施例提供的一种识别浏览器类型的方法流程图;
图3为本发明一实施例提供的一种利用决策树模型识别浏览器类型的示意图;
图4为本发明一实施例提供的一种建立浏览器指纹的装置结构图;
图5为本发明一实施例提供的一种识别浏览器类型的装置结构图;
图6为本发明一实施例提供的计算机系统/服务器的框图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1为本发明一实施例提供的一种建立浏览器指纹的方法流程图,如图1中所示,所述方法包括:
在101中,获取代码片段构成代码序列。
在本步骤中,首先获取代码片段,然后根据所获取的代码片段构成代码序列,所构成的代码序列用于获取不同类型的浏览器的浏览器指纹。
优选地,本步骤中所获取的代码片段为符合ECMAScript的语法标准的代码片段,而ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言。由于现代浏览器主要使用的脚本语言都是符合ECMAScript的语法标准的语言,例如JavaScript语言,因此本步骤获取符合ECMAScript的语法标准的代码片段,能够确保不同类型的浏览器支持代码片段的运行,从而避免因浏览器自身无法支持代码片段而造成的浏览器执行代码片段失败的问题。
具体地,本步骤在获取代码片段构成代码序列时,可以采用以下方式:获取预设个数的代码片段,例如可以从ECMAScript代码库中随机获取预设个数的代码片段,也可以由用户从ECMAScript代码库中选择预设个数的代码片段,还可以为用户输入预设个数的代码片段;将所获取的预设个数的代码片段构成代码序列。
可以理解的是,若不同类型的浏览器对同一个代码片段的执行结果均相同,例如各浏览器对某个代码片段的执行结果均为执行失败,则表明该代码片段是冗余的,即根据该代码片段的执行结果无法对浏览器的类型进行区分。
因此,为了避免在代码序列中存在冗余的代码片段,本步骤在获取代码片段构成代码序列时,还可以采用以下方式:获取代码片段,并确定该代码片段的分类效果,即确定根据该代码片段的执行结果能够区分几种类型的浏览器;判断该代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;根据代码片段的分类效果计算代码序列的信息增益;重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
其中,本步骤中的预设条件可以为代码片段的分类效果大于零,即本步骤将在不同类型的浏览器中获得相同执行结果的代码片段进行滤除。举例来说,若某个代码片段在不同类型的浏览器均能够执行成功,则将该代码片段进行滤除,不将其添加到代码序列中。
可以理解的是,在获取代码片段构成代码序列之后,本步骤还可以对代码序列中所包含的代码片段进行编号,即所构成的代码序列中包含有各代码片段以及各代码片段对应的编号。其中,本步骤在对代码片段进行编号时,可以根据代码片段的添加顺序来对代码序列中的代码片段进行编号;也可以在根据分类效果对各代码片段进行排序之后,依次对排序后的代码片段进行编号。
在102中,根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合。
在本步骤中,根据步骤101所构成的代码序列对不同类型的浏览器进行测试,从而分别得到各浏览器执行该代码序列的执行结果集合。其中,所得到的执行结果集合中包含有浏览器对代码序列中的各代码片段的执行结果。
可以理解的是,不同类型的浏览器包含当前比较主流的浏览器,例如IE浏览器、Chrome浏览器、Firefox浏览器、Safari浏览器、PhantomJS浏览器、Edge浏览器等。也就是说,本步骤可以得到当前比较主流的各浏览器在执行代码序列时所得到的执行结果。
具体地,本步骤在根据代码序列,分别获取不同类型的浏览器执行代码序列的执行结果集合时,可以采用以下方式:将代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果,即确定浏览器对代码片段是执行成功还是执行失败;分别将不同类型的浏览器执行各代码片段的执行结果进行组合,从而得到不同类型的浏览器执行代码序列的执行结果集合。
举例来说,若所构成的代码序列为{代码片段1,代码片段2,……代码片段n},若当前进行测试的浏览器为浏览器A,则首先将代码片段1输入浏览器A,若浏览器A能够执行代码片段1,则得到浏览器A对代码片段1的执行结果为执行成功;继续将代码片段2输入浏览器A,若浏览器A能够执行代码片段2,则得到浏览器A对代码片段2的执行结果也为执行成功;继续将代码片段3输入浏览器A,若浏览器A不能够执行代码片段3,则得到浏览器A对代码片段3的执行结果为执行失败;以此持续进行,直至将代码片段n输入浏览器A得到相应的执行结果后,得到浏览器A执行该代码序列的执行结果集合,例如获取浏览器A执行代码序列的执行结果集合可以为{成功,成功,失败……}。
另外,若步骤101对代码序列中的代码片段进行了编号,则本步骤所获取的各浏览器执行代码序列的执行结果集合中除了包含有各代码片段的执行结果之外,还包含有各代码片段的编号。举例来说,本步骤所获取的浏览器A执行代码序列的执行结果集合可以为{代码片段1:成功,代码片段2:成功,代码片段3:失败……}。
可以理解的是,为了能够获取更为简洁的表达方式,本步骤可以将“代码片段执行成功”记为“0”,将“代码片段执行失败”记为“1”。举例来说,本步骤所获取的浏览器A执行代码序列的执行结果集合可以为{代码片段1:0,代码片段2:0,代码片段3:1……}。
在103中,利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别浏览器的类型。
在本步骤中,利用步骤102所获取的不同类型的浏览器执行代码序列的执行结果集合中同一类型各浏览器执行代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别不同类型的浏览器。这是因为,不同类型的浏览器在执行代码序列中的代码片段时会有不同的执行结果,因此利用浏览器执行代码序列的执行结果集合,即浏览器对代码序列中各代码片段的执行结果的集合,能够区分不同类型的浏览器。
举例来说,若所获取的浏览器A执行代码序列的执行结果集合为{1:0,2:0,3:1……},浏览器B执行代码序列的执行结果集合为{1:1,2:0,3:1……},浏览器C执行代码序列的执行结果集合为{1:1,2:1,3:1……},则相应地将{1:0,2:0,3:1……}作为对应浏览器A的浏览器指纹,将{1:1,2:0,3:1……}作为对应浏览器B的浏览器指纹,将{1:1,2:1,3:1……}作为对应浏览器C的浏览器指纹。
另外,本步骤在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还可以包括以下内容:获取同一类型各浏览器的浏览器环境特征;将同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行代码序列的执行结果集合中,从而得到对应类型的浏览器的浏览器指纹。也就是说,本步骤能够进一步丰富浏览器的浏览器指纹中的信息,从而提升对浏览器类型识别的准确度。
其中,浏览器的浏览器环境特征用于表明浏览器的运行环境,例如所获取的浏览器环境特征可以为浏览器运行的操作平台、浏览器的名称、浏览器的版本、浏览器所运行的设备型号、浏览器所安装的插件列表等。
可以理解的是,本步骤可以根据现有的代码来获取浏览器的浏览器环境特征,例如使用代码navigator.platform来获取浏览器运行的操作平台,使用代码navigator.useragent来获取浏览器的名称、版本以及所运行的设备型号,或者使用代码navigator.plugins来获取浏览器所安装的插件列表等。
可以理解的是,本步骤在得到对应类型的浏览器的浏览器指纹之后,还可以进一步包含以下内容:根据所得到的对应类型的浏览器的浏览器指纹构建决策树模型,以用于根据所构建的决策树模型来识别浏览器的类型。也就是说,本步骤根据不同类型的浏览器所对应的浏览器指纹来建立决策树模型,从而实现通过所建立的决策树模型来识别浏览器的类型的目的。
图2为本发明一实施例提供的一种识别浏览器类型的方法流程图,如图2中所示,所述方法包括:
在201中,获取建立浏览器指纹时所使用的代码序列。
在本步骤中,获取建立浏览器指纹时所使用的代码序列,所获取的代码序列中包含相应的代码片段。
可以理解的是,在建立浏览器指纹时,可以将所使用的代码序列进行存储,例如将代码序列存储在云端服务器或者本地,从而在进行浏览器类型的识别时,本步骤便能够从预设的存储位置获取该代码序列。
在202中,根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合。
在本步骤中,利用步骤201所获取的代码序列对待识别浏览器进行测试,从而获取待识别浏览器执行该代码序列的执行结果集合。其中,本步骤中的待识别浏览器的个数可以为一个,也可以为多个。
具体地,本步骤在根据代码序列,获取待识别浏览器执行代码序列的执行结果集合时,可以采用以下方式:将代码序列中的代码片段依次输入待识别浏览器,获取待识别浏览器对所输入的代码片段的执行结果;将待识别浏览器执行各代码片段的执行结果进行组合,从而得到待识别浏览器执行代码序列的执行结果集合。
在203中,根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型。
在本步骤中,根据预先建立的浏览器指纹以及步骤202中所获取的待识别浏览器执行代码序列的执行结果集合,确定待识别浏览器的类型。
可以理解的是,在完成建立浏览器的浏览器指纹之后,可以将所建立的浏览器指纹进行存储,例如存储在云端服务器或本地,从而在进行浏览器类型的识别时,本步骤便能够在预设的存储位置获取预先建立的浏览器指纹。
具体地,本步骤在根据预先建立的浏览器指纹以及执行结果集合确定待识别浏览器的类型时,可以采用以下方式:计算所获取的执行结果集合与预先建立的浏览器指纹之间的匹配度;将与执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为待识别浏览器的类型。
另外,本步骤在根据预先建立的浏览器指纹以及执行结果集合,确定待识别浏览器的类型时,还可以采用以下方式:根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;利用所构建的决策树模型,根据执行结果集合确定待识别浏览器的类型。
可以理解的是,若在建立了浏览器的浏览器指纹之后,还根据所建立的浏览器指纹构建了决策树模型,则本步骤无需再进行决策树模型的建立,直接获取所建立的决策树模型来识别浏览器的类型即可。其中,利用决策树模型进行分类属于现有技术,在此不进行赘述。
另外,若预先建立的浏览器指纹中还包含有浏览器的浏览器环境特征,因此为了能够更加准确地确定待识别浏览器的类型,则本步骤在根据预先建立的浏览器指纹以及执行结果集合确定待识别浏览器的类型之前,还可以包括以下内容:获取待识别浏览器的浏览器环境特征,将所获取的浏览器环境特征添加到执行结果集合中。也就是说,本步骤可以根据待识别浏览器的执行结果集合以及浏览器环境特征一同进行浏览器类型的识别。
图3为本发明一实施例提供的一种利用决策树模型确定待识别浏览器的类型的示意图,在该实施例中仅示出部分代码片段以及部分浏览器环境特征。如图3中所示,在该决策树模型中,若代码片段10的执行结果为执行成功,则表明与其对应的浏览器可能为Firefox浏览器或Tor浏览器,若代码片段10的执行结果为执行失败,则表明与其对应的浏览器可能为IE浏览器或Chrome浏览器;若代码片段20的执行结果为执行成功,则表明与其对应的浏览器为Chrome浏览器,若代码片段20的执行结果为执行失败,则表明与其对应的浏览器为IE浏览器;若浏览器环境特征中的navigator.plugins为空列表,则表明与其对应的浏览器为Tor浏览器,否则为Firefox浏览器。因此,若待识别浏览器执行代码片段10的执行结果为执行成功,且待识别浏览器的navigator.plugins为空列表,则确定该待识别浏览器的类型的Tor浏览器。
图4为本发明一实施例提供的一种建立浏览器指纹的装置结构图,如图4中所示,所述装置包括:处理单元41、测试单元42以及建立单元43。
处理单元41,用于获取代码片段构成代码序列。
处理单元41首先获取代码片段,然后根据所获取的代码片段构成代码序列,所构成的代码序列用于获取不同类型的浏览器的浏览器指纹。
优选地,处理单元41所获取的代码片段为符合ECMAScript的语法标准的代码片段,而ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言。
具体地,处理单元41在获取代码片段构成代码序列时,可以采用以下方式:获取预设个数的代码片段,将所获取的预设个数的代码片段构成代码序列。
可以理解的是,若不同类型的浏览器对同一个代码片段的执行结果均相同,例如各浏览器对某个代码片段的执行结果均为执行失败,则表明该代码片段是冗余的,即根据该代码片段的执行结果无法对浏览器的类型进行区分。
因此,为了避免在代码序列中存在冗余的代码片段,处理单元41在获取代码片段构成代码序列时,还可以采用以下方式:获取代码片段,并确定该代码片段的分类效果,即确定根据该代码片段的执行结果能够区分几种类型的浏览器;判断该代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;根据代码片段的分类效果计算代码序列的信息增益;重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
其中,所使用的预设条件可以为代码片段的分类效果大于零,即处理单元41将在不同类型的浏览器中获得相同执行结果的代码片段进行滤除。
可以理解的是,在获取代码片段构成代码序列之后,处理单元41还可以对代码序列中所包含的代码片段进行编号,即所构成的代码序列中包含有各代码片段以及各代码片段对应的编号。其中,处理单元41在对代码片段进行编号时,可以根据代码片段的添加顺序来对代码序列中的代码片段进行编号;也可以在根据分类效果对各代码片段进行排序之后,依次对排序后的代码片段进行编号。
测试单元42,用于根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合。
测试单元42根据处理单元41所构成的代码序列对不同类型的浏览器进行测试,从而分别得到各浏览器执行该代码序列的执行结果集合。其中,所得到的执行结果集合中包含有浏览器对代码序列中的各代码片段的执行结果。
具体地,测试单元42在根据代码序列,分别获取不同类型的浏览器执行代码序列的执行结果集合时,可以采用以下方式:将代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果,即确定浏览器对代码片段是执行成功还是执行失败;分别将不同类型的浏览器执行各代码片段的执行结果进行组合,从而得到不同类型的浏览器执行代码序列的执行结果集合。
另外,若处理单元41对代码序列中的代码片段进行了编号,则测试单元42所获取的各浏览器执行代码序列的执行结果集合中除了包含有各代码片段的执行结果之外,还包含有各代码片段的编号。
可以理解的是,为了能够获取更为简洁的表达方式,测试单元42可以将“代码片段执行成功”记为“0”,将“代码片段执行失败”记为“1”。
建立单元43,用于利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别浏览器的类型。
建立单元43利用测试单元42所获取的同一类型各浏览器执行代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,以用于识别不同类型的浏览器。这是因为,不同类型的浏览器在执行代码序列中的代码片段时会有不同的执行结果,因此利用浏览器执行代码序列的执行结果集合,即浏览器对代码序列中各代码片段的执行结果的集合,能够区分不同类型的浏览器。
另外,建立单元43在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还可以包括以下内容:获取同一类型各浏览器的浏览器环境特征;将同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行代码序列的执行结果集合中,从而得到对应类型的浏览器的浏览器指纹。也就是说,建立单元43能够进一步丰富浏览器的浏览器指纹中的信息,从而提升对浏览器类型识别的准确度。
其中,浏览器的浏览器环境特征用于表明浏览器的运行环境,例如所获取的浏览器环境特征可以为浏览器运行的操作平台、浏览器的名称、浏览器的版本、浏览器所运行的设备型号、浏览器所安装的插件列表等。
可以理解的是,建立单元43在得到对应类型的浏览器的浏览器指纹之后,还可以进一步包含以下内容:根据所得到的对应类型的浏览器的浏览器指纹构建决策树模型,以用于根据所构建的决策树模型来识别浏览器的类型。也就是说,建立单元43根据不同类型的浏览器所对应的浏览器指纹来建立决策树模型,从而实现通过所建立的决策树模型来识别浏览器的类型的目的。
图5为本发明一实施例提供的一种识别浏览器类型的装置结构图,如图5中所示,所述装置包括:获取单元51、执行单元52以及识别单元53。
获取单元51,用于获取建立浏览器指纹时所使用的代码序列。
获取单元51获取建立浏览器指纹时所使用的代码序列,所获取的代码序列中包含相应的代码片段。
可以理解的是,在建立浏览器指纹时,可以将所使用的代码序列进行存储,例如将代码序列存储在云端服务器或者本地,从而在进行浏览器类型的识别时,获取单元51便能够从预设的存储位置获取该代码序列。
执行单元52,用于根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合。
执行单元52利用获取单元51所获取的代码序列对待识别浏览器进行测试,从而获取待识别浏览器执行该代码序列的执行结果集合。其中,执行单元52中的待识别浏览器的个数可以为一个,也可以为多个。
具体地,执行单元52在根据代码序列,获取待识别浏览器执行代码序列的执行结果集合时,可以采用以下方式:将代码序列中的代码片段依次输入待识别浏览器,获取待识别浏览器对所输入的代码片段的执行结果;将待识别浏览器执行各代码片段的执行结果进行组合,从而得到待识别浏览器执行代码序列的执行结果集合。
识别单元53,用于根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型。
识别单元53根据预先建立的浏览器指纹以及执行单元52中所获取的待识别浏览器执行代码序列的执行结果集合,确定待识别浏览器的类型。
可以理解的是,在完成建立浏览器的浏览器指纹之后,可以将所建立的浏览器指纹进行存储,例如存储在云端服务器或本地,从而在进行浏览器类型的识别时,识别单元53便能够在预设的存储位置获取预先建立的浏览器指纹。
具体地,识别单元53在根据预先建立的浏览器指纹以及执行结果集合确定待识别浏览器的类型时,可以采用以下方式:计算所获取的执行结果集合与预先建立的浏览器指纹之间的匹配度;将与执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为待识别浏览器的类型。
另外,识别单元53在根据预先建立的浏览器指纹以及执行结果集合,确定待识别浏览器的类型时,还可以采用以下方式:根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;利用所构造的决策树模型,根据执行结果集合确定待识别浏览器的类型。
可以理解的是,若在建立了浏览器的浏览器指纹之后,还根据所建立的浏览器指纹构建了决策树模型,则识别单元53无需再进行决策树模型的建立,直接获取所建立的决策树模型来识别浏览器的类型即可。其中,利用决策树模型进行分类属于现有技术,在此不进行赘述。
另外,若预先建立的浏览器指纹中还包含有浏览器的浏览器环境特征,因此为了能够更加准确地确定待识别浏览器的类型,则识别单元53在根据预先建立的浏览器指纹以及执行结果集合确定待识别浏览器的类型之前,还可以包括以下内容:获取待识别浏览器的浏览器环境特征,将所获取的浏览器环境特征添加到执行结果集合中。也就是说,本步骤可以根据待识别浏览器的执行结果集合以及浏览器环境特征一同进行浏览器类型的识别。
图6示出了适于用来实现本发明实施方式的示例性计算机系统/服务器012的框图。图6显示的计算机系统/服务器012仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统/服务器012以通用计算设备的形式表现。计算机系统/服务器012的组件可以包括但不限于:一个或者多个处理器或者处理单元016,系统存储器028,连接不同系统组件(包括系统存储器028和处理单元016)的总线018。
总线018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器012典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器012访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)030和/或高速缓存存储器032。计算机系统/服务器012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统034可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线018相连。存储器028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块042的程序/实用工具040,可以存储在例如存储器028中,这样的程序模块042包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块042通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器012也可以与一个或多个外部设备014(例如键盘、指向设备、显示器024等)通信,在本发明中,计算机系统/服务器012与外部雷达设备进行通信,还可与一个或者多个使得用户能与该计算机系统/服务器012交互的设备通信,和/或与使得该计算机系统/服务器012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口022进行。并且,计算机系统/服务器012还可以通过网络适配器020与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器020通过总线018与计算机系统/服务器012的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机系统/服务器012使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元016通过运行存储在系统存储器028中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的方法流程。
上述的计算机程序可以设置于计算机存储介质中,即该计算机存储介质被编码有计算机程序,该程序在被一个或多个计算机执行时,使得一个或多个计算机执行本发明上述实施例中所示的方法流程和/或装置操作。例如,被上述一个或多个处理器执行本发明实施例所提供的方法流程。
随着时间、技术的发展,介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
利用本发明所提供的技术方案,通过获取代码片段构成代码序列,进而由不同类型的浏览器执行该代码序列,从而将各浏览器执行该代码序列的执行结果集合作为各浏览器的浏览器指纹,丰富了所建立的浏览器指纹中包含的信息,降低了浏览器指纹被更改的可能性,进一步提升了浏览器类型的识别准确度。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (18)

1.一种建立浏览器指纹的方法,其特征在于,所述方法包括:
获取代码片段构成代码序列;
根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合;
利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,并根据所得到的对应类型的浏览器的浏览器指纹构建决策树模型,以用于根据所构建的决策树模型来识别浏览器的类型;
其中,所述决策树模型中的判断节点为浏览器指纹中的代码片段及其执行结果,所述决策树模型中的决策节点为各浏览器指纹所对应的浏览器类型。
2.根据权利要求1所述的方法,其特征在于,所获取的代码片段为符合ECMAScript的语法标准的代码片段。
3.根据权利要求1所述的方法,其特征在于,所述获取代码片段构成代码序列包括:
获取代码片段,并确定该代码片段的分类效果;
判断所述代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;
根据添加至代码序列的代码片段的分类效果,计算代码序列的信息增益;
重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
4.根据权利要求1所述的方法,其特征在于,所述根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合包括:
将所述代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果;
分别将不同类型的浏览器执行各代码片段的执行结果进行组合,得到不同类型的浏览器执行所述代码序列的执行结果集合。
5.根据权利要求1所述的方法,其特征在于,在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还包括:
获取同一类型各浏览器的浏览器环境特征;
将所获取的同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行所述代码序列的执行结果集合中,得到对应类型的浏览器的浏览器指纹。
6.根据权利要求5所述的方法,其特征在于,所述浏览器环境特征包括浏览器运行的操作平台、浏览器的名称、浏览器的版本、浏览器所运行的设备型号、浏览器所安装的插件列表中的至少一种。
7.一种识别浏览器类型的方法,其特征在于,所述方法包括:
获取建立浏览器指纹时所使用的代码序列;
根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合;
根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型;
其中,根据权利要求1至6中任一项权利要求的方法预先建立浏览器指纹;
所述根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型包括:
根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;
利用所构建的决策树模型,根据所述执行结果集合确定所述待识别浏览器的类型。
8.根据权利要求7所述的方法,其特征在于,所述根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合包括:
将所述代码序列中的代码片段依次输入待识别浏览器,获取待识别浏览器对所输入的代码片段的执行结果;
将待识别浏览器执行各代码片段的执行结果进行组合,获取待识别浏览器执行所述代码序列的执行结果集合。
9.根据权利要求7所述的方法,其特征在于,所述根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型包括:
计算所述执行结果集合与预先建立的浏览器指纹之间的匹配度;
将与所述执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为所述待识别浏览器的类型。
10.根据权利要求7所述的方法,其特征在于,在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型之前,还包括:
获取所述待识别浏览器的浏览器环境特征,并将所获取的浏览器环境特征添加到所述执行结果集合中。
11.一种建立浏览器指纹的装置,其特征在于,所述装置包括:
处理单元,用于获取代码片段构成代码序列;
测试单元,用于根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合;
建立单元,用于利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹,并根据所得到的对应类型的浏览器的浏览器指纹构建决策树模型,以用于根据所构建的决策树模型来识别浏览器的类型;
其中,所述决策树模型中的判断节点为浏览器指纹中的代码片段及其执行结果,所述决策树模型中的决策节点为各浏览器指纹所对应的浏览器类型。
12.根据权利要求11所述的装置,其特征在于,所述处理单元在获取代码片段构成代码序列时,具体执行:
获取代码片段,并确定该代码片段的分类效果;
判断所述代码片段的分类效果是否满足预设条件,若满足,则将其添加至代码序列;
根据添加至代码序列的代码片段的分类效果,计算代码序列的信息增益;
重复以上操作,直至当前代码序列的信息增益与前次代码序列的信息增益之间的差值小于预设阈值时,则停止获取代码片段,得到代码序列。
13.根据权利要求11所述的装置,其特征在于,所述测试单元在根据所述代码序列,分别获取不同类型的浏览器执行所述代码序列的执行结果集合时,具体执行:
将代码序列中的代码片段依次输入不同类型的浏览器,得到不同类型的浏览器对所输入的代码片段的执行结果;
分别将不同类型的浏览器执行各代码片段的执行结果进行组合,得到不同类型的浏览器执行所述代码序列的执行结果集合。
14.根据权利要求11所述的装置,其特征在于,所述建立单元在利用同一类型各浏览器执行所述代码序列的执行结果集合,得到对应类型的浏览器的浏览器指纹之前,还执行:
获取同一类型各浏览器的浏览器环境特征;
将所获取的同一类型各浏览器的浏览器环境特征添加到同一类型各浏览器执行所述代码序列的执行结果集合中,得到对应类型的浏览器的浏览器指纹。
15.一种识别浏览器类型的装置,其特征在于,所述装置包括:
获取单元,用于获取建立浏览器指纹时所使用的代码序列;
执行单元,用于根据所述代码序列,获取待识别浏览器执行所述代码序列的执行结果集合;
识别单元,用于根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型;
其中,根据权利要求11至14中任一项权利要求的装置预先建立浏览器指纹;
所述识别单元在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型时,具体执行:
根据预先建立的浏览器指纹构建决策树模型,即将浏览器指纹中的代码片段及其执行结果作为决策树模型中的判断节点,将各浏览器指纹所对应的浏览器类型作为决策树模型中的决策节点;
利用所构建的决策树模型,根据所述执行结果集合确定所述待识别浏览器的类型。
16.根据权利要求15所述的装置,其特征在于,所述识别单元在根据预先建立的浏览器指纹以及所述执行结果集合,确定所述待识别浏览器的类型时,具体执行:
计算所述执行结果集合与所述预先建立的浏览器指纹之间的匹配度;
将与所述执行结果集合匹配度最高的浏览器指纹对应的浏览器类型,作为所述待识别浏览器的类型。
17.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
18.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-10中任一所述的方法。
CN201910272931.XA 2019-04-04 2019-04-04 建立浏览器指纹以及识别浏览器类型的方法、装置 Active CN110162729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910272931.XA CN110162729B (zh) 2019-04-04 2019-04-04 建立浏览器指纹以及识别浏览器类型的方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910272931.XA CN110162729B (zh) 2019-04-04 2019-04-04 建立浏览器指纹以及识别浏览器类型的方法、装置

Publications (2)

Publication Number Publication Date
CN110162729A CN110162729A (zh) 2019-08-23
CN110162729B true CN110162729B (zh) 2021-09-21

Family

ID=67639080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910272931.XA Active CN110162729B (zh) 2019-04-04 2019-04-04 建立浏览器指纹以及识别浏览器类型的方法、装置

Country Status (1)

Country Link
CN (1) CN110162729B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835589B (zh) * 2021-01-05 2022-03-04 南方电网数字电网研究院有限公司 一种隐藏代码的激活方法
CN112685682B (zh) * 2021-03-16 2021-07-09 连连(杭州)信息技术有限公司 一种攻击事件的封禁对象识别方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722585A (zh) * 2012-06-08 2012-10-10 亿赞普(北京)科技有限公司 浏览器类型识别方法、装置及系统
CN106230831A (zh) * 2016-05-31 2016-12-14 众安在线财产保险股份有限公司 一种识别浏览器唯一性和风险特征的方法和系统
CN106446202A (zh) * 2016-09-30 2017-02-22 福建北卡科技有限公司 一种基于特征隐式获取的抗干扰浏览器指纹生成方法
CN106960154A (zh) * 2017-03-30 2017-07-18 兴华永恒(北京)科技有限责任公司 一种基于决策树模型的恶意程序动态识别方法
CN107066974A (zh) * 2017-04-17 2017-08-18 东南大学 一种抗浏览器指纹改变的终端设备识别方法
CN107239491A (zh) * 2017-04-25 2017-10-10 广州阿里巴巴文学信息技术有限公司 用于实现用户行为追踪的方法、设备、浏览器及电子设备
US10148792B1 (en) * 2015-05-20 2018-12-04 Network Advertising Initiative Inc. Opt-out enforcement for systems using non-cookie browser identification

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248782B2 (en) * 2017-01-27 2019-04-02 Duo Security, Inc. Systems and methods for access control to web applications and identification of web browsers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722585A (zh) * 2012-06-08 2012-10-10 亿赞普(北京)科技有限公司 浏览器类型识别方法、装置及系统
US10148792B1 (en) * 2015-05-20 2018-12-04 Network Advertising Initiative Inc. Opt-out enforcement for systems using non-cookie browser identification
CN106230831A (zh) * 2016-05-31 2016-12-14 众安在线财产保险股份有限公司 一种识别浏览器唯一性和风险特征的方法和系统
CN106446202A (zh) * 2016-09-30 2017-02-22 福建北卡科技有限公司 一种基于特征隐式获取的抗干扰浏览器指纹生成方法
CN106960154A (zh) * 2017-03-30 2017-07-18 兴华永恒(北京)科技有限责任公司 一种基于决策树模型的恶意程序动态识别方法
CN107066974A (zh) * 2017-04-17 2017-08-18 东南大学 一种抗浏览器指纹改变的终端设备识别方法
CN107239491A (zh) * 2017-04-25 2017-10-10 广州阿里巴巴文学信息技术有限公司 用于实现用户行为追踪的方法、设备、浏览器及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"浏览器指纹技术的研究与应用";杨立鹏 等;《计算机技术与发展》;20171115(第03期);第169-173页 *

Also Published As

Publication number Publication date
CN110162729A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN109599095B (zh) 一种语音数据的标注方法、装置、设备和计算机存储介质
CN108090043B (zh) 基于人工智能的纠错举报处理方法、装置及可读介质
CN101751530A (zh) 检测漏洞攻击行为的方法及设备
US20150169430A1 (en) Selecting webpage test paths
US11030074B2 (en) Code update based on detection of change in runtime code during debugging
US20150095305A1 (en) Detecting multistep operations when interacting with web applications
CN110162729B (zh) 建立浏览器指纹以及识别浏览器类型的方法、装置
CN110826036A (zh) 用户操作行为安全性的识别方法、装置和电子设备
CN110688111A (zh) 业务流程的配置方法、装置、服务器和存储介质
CN110377885B (zh) 转换pdf文件的方法、装置、设备和计算机存储介质
CN110837635A (zh) 一种设备验证的方法、装置、设备及存储介质
CN113094625B (zh) 页面元素定位方法、装置、电子设备及存储介质
CN111240971B (zh) 风控规则测试用例的生成方法、装置、服务器和存储介质
CN110543641B (zh) 一种中外文信息对比方法及装置
CN109669875B (zh) 应用崩溃测试方法、装置、电子设备及存储介质
CN108197041B (zh) 一种确定子进程的父进程的方法、设备及其存储介质
CN115022201B (zh) 一种数据处理功能测试方法、装置、设备及存储介质
US10002253B2 (en) Execution of test inputs with applications in computer security assessment
CN112364746B (zh) 一种诊脉方法、电子设备和计算机存储介质
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN114205156A (zh) 面向切面技术的报文检测方法、装置、电子设备及介质
CN109218284B (zh) Xss漏洞检测方法及装置、计算机设备及可读介质
CN113672512A (zh) 代码检查规则生成方法、代码检查方法、装置、介质
CN114443721A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110750569A (zh) 数据提取方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant