未登录也能知道你是谁?浏览器指纹了解一下!

简介: 未登录也能知道你是谁?浏览器指纹了解一下!

引言

大多数人都遇到过这种场景,我在某个网站上浏览过的信息,但我并未登录,可是到了另一个网站发现被推送了类似的广告,这是为什么呢?

本文将介绍一种浏览器指纹的概念,以及如何利用它来判断浏览者身份。

浏览器指纹

浏览器指纹是指通过浏览器的特征来唯一标识用户身份的一种技术。

它通过记录用户浏览器的一些基本信息,包括操作系统、浏览器类型、浏览器版本、屏幕分辨率、字体、颜色深度、插件、时间戳等,通过这些信息,可以唯一标识用户身份。

应用场景

其实浏览器指纹这类的技术已经被运用的很广泛了,通常都是用在一些网站用途上,比如:

  • 资讯等网站:精准推送一些你感兴趣的资讯给你看
  • 购物网站: 精确推送一些你近期浏览量比较多的商品展示给你看
  • 广告投放: 有一些网站是会有根据你的喜好,去投放不同的广告给你看的,大家在一些网站上经常会看到广告投放吧?
  • 网站防刷: 有了浏览器指纹,就可以防止一些恶意用户的恶意刷浏览量,因为后端可以通过浏览器指纹认得这些恶意用户,所以可以防止这些用户的恶意行为
  • 网站统计: 通过浏览器指纹,网站可以统计用户的访问信息,比如用户的地理位置、访问时间、访问频率等,从而更好的为用户提供服务

如何获取浏览器指纹

指纹算法有很多,这里介绍一个网站 https://browserleaks.com/ 上面介绍了很多种指纹,可以根据自己的需要选择。

image.png

这里我们看一看canvas,可以看到光靠一个canvas的信息区分,就可以做到15万用户只有7个是重复的,如果结合其他信息,那么就可以做到更精准的识别。 image.png

canvas指纹

canvas指纹的原理就是通过 canvas 生成一张图片,然后将图片的像素点信息记录下来,作为指纹信息。

不同的浏览器、操作系统、cpu、显卡等等,画出来的 canvas 是不一样的,甚至可能是唯一的。

具体步骤如下:

  1. 用canvas 绘制一个图像,在画布上渲染图像的方式可能因web浏览器、操作系统、图形卡和其他因素而异,从而生成可用于创建指纹的唯一图像。在画布上呈现文本的方式也可能因不同web浏览器和操作系统使用的字体渲染设置和抗锯齿算法而异。

image.png

  1. 要从画布生成签名,我们需要通过调用toDataURL() 函数从应用程序的内存中提取像素。此函数返回表示二进制图像文件的 base64 编码字符串。然后,我们可以计算该字符串的MD5哈希来获得画布指纹。或者,我们可以从IDAT块中提取 CRC校验和IDAT块 位于每个 PNG 文件末尾的16到12个字节处,并将其用作画布指纹。

我们来看看结果,可以知道,无论是否在无痕模式下,都可以生成相同的 canvas 指纹。

换台设备试试

image.png

其他浏览器指纹

除了canvas,还有很多其他的浏览器指纹,比如:

WebGL 指纹

WebGL(Web图形库)是一个 JavaScript API,可在任何兼容的 Web 浏览器中渲染高性能的交互式 3D2D 图形,而无需使用插件。

WebGL 通过引入一个与 OpenGL ES 2.0 非常一致的 API 来做到这一点,该 API 可以在 HTML5 元素中使用。

这种一致性使 API 可以利用用户设备提供的硬件图形加速。

网站可以利用 WebGL 来识别设备指纹,一般可以用两种方式来做到指纹生产:

WebGL 报告——完整的 WebGL 浏览器报告表是可获取、可被检测的。在一些情况下,它会被转换成为哈希值以便更快地进行分析。

WebGL 图像 ——渲染和转换为哈希值的隐藏 3D 图像。由于最终结果取决于进行计算的硬件设备,因此此方法会为设备及其驱动程序的不同组合生成唯一值。这种方式为不同的设备组合和驱动程序生成了唯一值。

可以通过 Browserleaks test 检测网站来查看网站可以通过该 API 获取哪些信息。

产生 WebGL 指纹原理是首先需要用着色器(shaders)绘制一个梯度对象,并将这个图片转换为Base64 字符串。

然后枚举 WebGL 所有的拓展和功能,并将他们添加到 Base64 字符串上,从而产生一个巨大的字符串,这个字符串在每台设备上可能是非常独特的。

例如 fingerprint2js 库的 WebGL 指纹生产方式:

HTTP标头

每当浏览器向服务器发送请求时,它会附带一个HTTP标头,其中包含了诸如浏览器类型、操作系统、语言偏好等信息。

这些信息可以帮助网站优化用户体验,但同时也能用来识别和追踪用户。

屏幕分辨率

屏幕分辨率指的是浏览器窗口的大小和设备屏幕的能力,这个参数因用户设备的不同而有所差异,为浏览器指纹提供了又一个独特的数据点。

时区

用户设备的本地时间和日期设置可以透露其地理位置信息,这对于需要提供地区特定内容的服务来说是很有价值的。

浏览器插件

用户安装的插件列表是非常独特的,可以帮助形成识别个体的浏览器指纹。

音频和视频指纹

通过分析浏览器处理音频和视频的方式,网站可以获取关于用户设备音频和视频硬件的信息,这也可以用来构建用户的浏览器指纹。

image.png

那么如何防止浏览器指纹呢?

先讲结论,成本比较高,一般人不会使用。

现在开始实践,根据上述的原理,我们知道了如何生成一个浏览器指纹,我们只需要它在获取toDataURL时,修改其中的内容,那么结果就回产生差异,从而无法通过浏览器指纹进行识别。

那么,我们如何修改toDataURL的内容呢?

我们不知道它会在哪里调用,所以我们只能通过修改它的原型链来修改。

又或者使用专门的指纹浏览,该浏览器可以随意切换js版本等信息来造成无序的随机值。

修改 toDataURL

image.png

第三方指纹库

FingerprintJS

image.png

FingerprintJS是一个源代码可用的客户端浏览器指纹库,用于查询浏览器属性并从中计算散列访问者标识符。

cookie和本地存储不同,指纹在匿名/私人模式下保持不变,即使浏览器数据被清除。

ClientJS Library

image.png

ClientJS 是另一个常用的JavaScript库,它通过检测浏览器的多个属性来生成指纹。

该库提供了易于使用的接口,适用于多种浏览器指纹应用场景。


相关文章
|
6月前
|
编解码 缓存 安全
用指纹浏览器为什么要搭配代理IP
指纹浏览器结合代理IP能有效提升网络隐私与安全。指纹浏览器通过生成独特用户标识防止追踪,但高级追踪技术仍可能暴露信息。代理IP可隐藏真实IP,增加匿名性,规避网络限制,并在指纹检测中混淆身份,增强安全。代理IP还能加速网络访问并提高稳定性。然而,选择可靠代理IP服务并遵守法规至关重要。
|
前端开发 JavaScript
前端使用fingerprintjs2获取浏览器指纹
前端使用fingerprintjs2获取浏览器指纹
2559 0
|
30天前
|
缓存 前端开发 算法
浅谈【JavaScript】的浏览器指纹?
浅谈【JavaScript】的浏览器指纹?
18 0
|
3月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
92 1
|
4月前
|
数据采集 数据安全/隐私保护
Kameleo指纹浏览器进阶使用:轻松集成IPXProxy海外代理IP
Kameleo是一款出色的指纹浏览器,它能够帮助用户实现隐身浏览。大家在进行网络抓取的时候总会碰到一些阻碍,而采取指纹浏览器可以提升网络抓取的效率,并且集成代理IP能增加一层防护,让数据采集更加全面,为制定营销策略提供更好的支持。那如何将Kameleo指纹浏览器与IPXProxy海外代理IP集成?
|
4月前
|
安全 搜索推荐 数据安全/隐私保护
战斧指纹浏览器与IPXProxy海外代理IP的协同使用策略
战斧指纹浏览器是一家专注跨境用户的指纹浏览器,支持IP隔离技术,能够解决账号关联的问题。当然,用户在使用战斧浏览器的时候也可以搭配自有设备,其中IPXProxy的海外代理IP是不错的选择。那战斧指纹浏览器与IPXProxy海外代理IP如何搭配使用?
127 2
|
4月前
|
数据安全/隐私保护
YunLogin指纹浏览器与IPXProxy海外代理IP搭配使用的步骤详解
想要运营海外社交媒体账号,需要指纹浏览器和代理IP这两个实用的工具。YunLogin指纹浏览器是不错的选择,用户可以利用指纹浏览器来管理多个社交媒体账号,例如instagram,然后通过给浏览器环境设置不同的代理IP,降低账号关联的风险,确保每个账号都是独立运行。那如何将YunLogin指纹浏览器与IPXProxy海外代理IP搭配使用?
|
4月前
|
安全 iOS开发 MacOS
Dolphin指纹浏览器+IPXProxy代理IP:配置与使用全流程
通过代理IP,用户可以轻松绕过地域限制,访问全球范围内的网站和服务。不过想要同时使用多个代理IP的话,就需要借助指纹浏览器。Dolphin指纹浏览器和IPXProxy代理IP是大家常用的组合,这个组合为用户打造了一个既安全又高效的在线环境。下面是Dolphin指纹浏览器配置IPXProxy代理IP使用步骤,帮助大家更好了解这个组合。
|
4月前
|
安全
全面掌握Dolphin指纹浏览器:IPXProxy代理IP集成使用指南
对于需要管理多个社交媒体或电商平台的用户而言,Dolphin指纹浏览器提供了便捷的多账号隔离功能,搭配代理IP可以有效的防止账户关联。并且Dolphin指纹浏览器能够支持团队协作,方便团队进行互动、跟踪账户、查看代理状态。一些刚接触指纹浏览器的用户,不知道如何将Dolphin指纹浏览器和代理IP集成使用,下面以IPXProxy代理IP为例,带来详细的操作步骤。
|
4月前
|
数据安全/隐私保护
Dolphin指纹浏览器隐私保护升级:IPXProxy代理IP配置实战教程
Dolphin指纹浏览器采用先进的技术,让用户在一台电脑上就可以处理数百个配置文件。每一个配置文件都有着独特的浏览器指纹,极大的保障了用户上网的安全性。并且搭配代理IP一起,还能给每个文件配置不同的IP地址,让网络活动可以畅通无阻。下面给大家带来Dolphin指纹浏览器和IPXProxy代理IP配置详细教程