知识分享
Browser fingerprinting
知识分享

什么是"Browser Fingerprint"?


Browser Fingerprint是一组浏览器 + PC等客户端的特性, 依赖这组特性, 我们可以几乎唯一的识别这些浏览器和客户端. 而且获得这些属性不需要额外要求权限.

例子:

Attribute
Value
Attribute
Value
User agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
acceptText / html, application / xhtml + xml, application / xml; q = 0.9, * / *; q = 0.8
encodinggzip, deflate, br
languagesEn-US, with q = 0.5
List of plugins0: Chrome PDF Plugin; 1: Chrome PDF Viewer; 2: Native Client; 3: Widevine Content Decryption Module;
PlatformWin32
Allowed cookiesYes
Do not trackYes
Time zone-480
Screen resolution1366x768x24
Local storageYes
session storageYes
Canvas
WebGL VendorGoogle Inc.
WebGL RendererANGLE (Intel(R) HD Graphics 520 Direct3D11 vs_5_0 ps_5_0)
List of fonts (Flash)Flash not detected
Screen resolution (Flash)Flash not detected
Language (Flash)Flash not detected
Platform (Flash)Flash not detected
AdBlockYes

属性的稳定性


作为浏览器"指纹", 我们要求2个特点, 1) 稳定(几乎不会变化) 2) 唯一(几乎). 但有些属性是难免要更新的, 比如浏览器的版本升级. 按照这些更改的发起方, 我们把他分成3大类, 用户/自动/环境.

用户: 用户自己更改了某个选项的值. 自动: 浏览器自动升级. 环境: 比如用户去了另外一个地点出差, 或者临时接了另外的显示器或者投影.

Attribute
trigger
90th
95th
Attribute
trigger
90th
95th
Screen resolution环境3.11.8
User agent自动13.08.4
List of plugins自动 / 用户12.28.7
List of fonts自动11.85.4
HTTP headers自动34.114.9
Canvas自动35.317.2
Browser version自动33.323.5
Time zone环境53.826.8
WebGL Renderer自动81.230.3
WebGL Vendor自动107.948.6
languages用户215.156.7
Do not track用户171.457.0
encoding自动106.160.5
accept自动163.8109.5
Local storage用户Never320.2
Platform自动NeverNever
Cookies用户NeverNever

从这个表能看出, User Agent相对变化的比较频繁, 因为浏览器厂商会经常推送更新; 而language这种属性就很少有变化.


跟踪算法


请访问公司K站(知识库获取后续内容)