关于浏览器指纹

浏览器指纹是什么?是一个能够唯一标识当前浏览器的一串字符串。

github地址  https://github.com/Valve/fingerprintjs2

通过这个js可以获取到当前浏览器的指纹。

他具体是通过如下参数计算得到的

要素名 中文解释
user_agent 用户代理,包含浏览器版本号
language 浏览器设置的当前语言
color_depth 屏幕颜色深度
device_memory 是否支持设备内存调试(估计是针对移动端测试)
pixel_ratio 是否支持像素比例调整
hardware_concurrency 是否支持硬件并发性
resolution 屏幕分辨率
available_resolution 可用的屏幕分辨率
timezone_offset 格林威治时间和本地时间之间的时差,以分钟为单位
session_storage 是否支持session_storage,这是html5的标准特性之一
local_storage 是否支持local_storage,这是html5的标准特性之一
indexed_db 是否支持浏览器端数据库,html5新特性之一
cpu_class navigator.cpuClass cpu类型 unknown
navigator_platform 所在操作系统平台,例如win32
do_not_track 隐私设置相关属性,用户是否允许网站追踪自己的喜好
regular_plugins 安装的插件信息(例如装了pdf插件)
canvas 画布。用画布api画了一个长方形,然后转为base64字符串
webgl 网页3D绘图协议。把对webgl的支持情况汇总起来的信息
webgl_vendor webgl的提供商和显卡情况
adblock ad block  是否支持广告阻止
has_lied_languages 浏览器语言是否等于浏览器设置的第一语言
has_lied_resolution 分辨率的比较 screen.width < screen.availWidth
screen.height < screen.availHeight
has_lied_os 判断系统平台platform是否真实可靠(lied说谎)
has_lied_browser 判断浏览器是否检测的真实可靠(lied说谎)
touch_support 是否支持触控
js_fonts 检测字体的支持情况
最终难以使用浏览器指纹作为客户端唯一标识的原因是: 浏览器经常 会自动升级,自动升级就会导致浏览器指纹发生变化。
因为我们使用白名单机制,这时候就需要更新白名单登记。

你可能感兴趣的:(浏览器指纹,客户端标识)