当你访问一些社交网站,如facebook、instagram,或者一些电商网站如amazon、etsy的时候,这些网站都会悄悄地收集着关于您浏览器相关的各种细节:如您的IP地址,您使用的操作系统(比如Windows或macOS)、屏幕分辨率、甚至您安装了哪些字体等等。这些看似无关紧要的信息,当汇集在一起时,就形成了一个浏览器指纹。这个指纹在大多数情况下是独一无二的,就像现实生活中的指纹一样,它能让网站识别出您是一个独特的访问者——即使您清除了Cookies或正在使用“隐私模式”,网站也能够利用技术手段收集到。
浏览器指纹的重要性在于,它能让网站记住您是谁。电商网站和社交平台都希望自己的用户是真实的,他们通常不愿意看到一个人掌握大量的账户。
但在现实中,尤其是在业务需求中,一个团队或企业运营多个账户往往是必要的。这时,了解浏览器指纹就显得尤为重要。对于使用指纹浏览器的用户来说,了解每一个浏览器指纹,意味着他们可以更合理地设置环境的指纹,确保每个账户都安全地运行。
每次您连接到互联网时,您的互联网服务提供商(ISP)都会为您的上网设备分配一个IP地址,它类似于现实生活中的邮寄地址,确保数据正确送达指定目的地(客户端或者服务器)。
目前大家常见的IP地址格式有两种:
IPv4:这是一种广泛使用的IP地址格式,由四组1到3位数字组成,每组数字之间用点(.)隔开。每组数字的取值范围是0到255。例如,一个典型的IPv4地址可能是192.168.1.1。
IPv6:随着设备数量的增加,IPv4地址的存量逐渐不足以满足需求,因此开发了IPv6格式。这种格式使用八组四个十六进制数,每组之间用冒号(:)隔开。例如,一个IPv6地址可能看起来像这样:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
IP地址作为浏览器指纹的一部分,它为用户的设备提供了一个全球唯一的标识符。网站可以利用这个信息来定位用户、定制内容,并进行安全检查,比如识别异常登录行为或防止欺诈。IP地址还能帮助网站执行合规性控制,例如某些网站会禁止一些国家的IP访问。
FlashCookie是由FlashPlayer控制的客户端共享存储技术:
(1)、类似HTTP Cookie,Flash Cookie利用 SharedObject类实现本地存储信息,SharedObject类用于在用户计算机上读取和存储有限的数据量,共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享;
(2)、本地共享对象是作为一些单独的文件来存储的,它们的文件扩展名为.SOL;
(3)、本地共享对象并不是基于浏览器的,所以普通的用户不容易删除它们。如果要删掉它们的话,首先要知道这些文件所在的具体位置。这使得本地共享对象能够长时间的保留在本地系统上。
资料来源:https://blog.csdn.net/Fabulous1111/article/details/84206426
浏览器语言通常指的是用户在浏览器设置中选择的首选语言,这决定了用户在访问多语言网站时所看到的默认语言版本。这些信息通常通过HTTP请求的“Accept-Language”头部发送给网站的服务器,它可能包含一个或多个语言标签,通常按照用户偏好的顺序排列。
屏幕分辨率不仅包括物理屏幕的实际像素数,还包括浏览器窗口的当前视图大小。例如一块显示器的分辨率为1920*1080,浏览器的可视区域可能并不会占满整个屏幕,分辨率就只有1920*1050。
因为浏览器还有工具栏、标签栏等等。因此,物理屏幕分辨率与浏览器的可视区域尺寸也能成为一种浏览器指纹,因为不同的用户采用的显示设备不同,当网站将屏幕分辨率与其他指纹结合在一起的时候,每个用户的指纹就会显得更加独特。
AudioContext 是浏览器提供的一个工具,它能处理和生成音频,让网站能播放和修改声音。
每个设备处理声音的细微差异可以通过这个工具被捕捉到,形成一种“声音指纹”。这种指纹独一无二,因为它反映了每个人电脑上不同的音频硬件和软件设置,所以也就成为了浏览器指纹之一。
媒体设备指纹是网站利用MediaDevices API收集用户设备上的音频和视频硬件信息,包括设备的类型、标签名称、分辨率(摄像头)、频率响应(麦克风)以及连接类型(如USB或蓝牙)。
因为,这些信息通常相对稳定,用户不太可能频繁更换这些硬件,所以每个用户的指纹就会显得非常独特。因此会被用作浏览器指纹。然而,现代浏览器出于隐私考虑,通常需要用户授权,网站才能获取到这些信息。
在您上网浏览网页时,比如阅读文章、在线购物,或者观看视频,浏览器会不断地计算和重新计算页面上各种元素的位置,以确保内容正确显示。这些计算结果可能因为您的设备类型、浏览器、屏幕大小,甚至是当前窗口大小的不同而有所差异。
这些看似普通的布局信息,实际上可以被网站用来生成一个关于您浏览器的独特描述,即ClientRects 指纹。因为每个人的设备和浏览器组合都是独一无二的,所以这些元素的具体位置和大小在统计上可以帮助网站识别和区分每个用户。
Speech Voices 指纹是基于您设备上可用的语音合成选项。这些选项由您的操作系统和浏览器提供,并且可能包括不同的语言、口音和发音性别。因为每个人的电脑配置可能不同,所以这些语音选项也各不相同。
网站可以通过Web Speech API获取这些信息,并将其用作一种识别手段,因为不太可能有两台设备具有完全相同的语音合成设置。这就像是一个数字化的声音库,能够反映出用户的设备特征,从而成为用户独特的数字指纹的一部分。
硬件并发数指的是计算机的处理器核心数量,它是一个表示设备能够同时处理多少计算任务的指标。在浏览器中,这个信息可以通过JavaScript的 navigator.hardwareConcurrency 属性来获取,它返回一个代表用户设备上逻辑处理器的数量的整数。
网站可以检测到访问者设备的内存大小。这是通过JavaScript的 navigator.deviceMemory API 实现的,它可以返回设备的大致内存大小。如2的倍数:2,4,6,8。
您可能会疑惑,现在的电脑设备越来越强大了,内存早就超过8GB了,为啥网站只能检测到8呢。这是因为为了减少指纹识别,保护内存非常低或非常高的设备的所有者的隐私,所以该API接口获取到的值最大只有8。
既然通过IP地址可以了解一个网站访客来自于哪个国家、哪个城市,那么用户所在国家的时区、以及当地时间也就可以推算出来。
网站还可以通过运行JavaScript代码来获取用户的本地时间和时区。
当用户访问网站时,如果提供的时区信息与其他浏览器指纹信息(如IP地址推断的地理位置)不一致,网站可能会检测到这种不一致。这可能会引起网站的注意,特别是那些有防欺诈系统的网站,它们可能会寻找这类不匹配作为异常行为的指标。
因此,在使用指纹浏览器修改与“时间”相关指纹的时候,要注意与IP地址匹配。
localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将bai数据保存在客户端中,而客户端一般是指上海网站设计用户的计算机。在移动设备上,由于大部分浏览器都支持web storage特性,因此在android和ios等智能手机上的web浏览器都能正常使用该特性。
localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前web浏览器后重新启动,数据让然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。
在安全性方面,localstorage是域内安全的,即localstorage是基于域的。任何在该域内的所有页面,都可以访问localstorage数据。但让然存在一个问题,就是各个浏览器厂商的浏览器之间的数据是各自独立的。也就是说,如果在firefox中使用localstorage存储一组数据,在chrome浏览器下是无法读取的。同样,由于localstorage数据是保存在用户的设备中的,因此同一个应用程序在不同设备上保存的数据是不同的。
资料来源:https://zhidao.baidu.com/question/304730398919931564.html
通过IP地址,网站可以了解用户的国家、地区、城市、经纬度,有时甚至是邮政编码或社区等更具体的地理位置信息。
这些信息可以用来提供地理定位服务,如本地化内容、语言偏好设置和区域特定的广告或促销活动。
每台计算机上安装的字体集合可能会因为用户的个人选择、操作系统、安装的应用程序和其他因素而有所不同。浏览器可以通过JavaScript API,如FontFaceSet接口,列出用户设备上可用的字体。
由于用户安装的字体可能会非常具体,尤其是当包括了非标准或自定义字体时,这些信息可以与其他浏览器数据结合起来,形成一个相对独特的指纹。这意味着,即使两个用户使用相同的浏览器和操作系统,他们的字体集也可能不同,从而为网站提供了区分不同用户的另一种方式。
"Do Not Track"(DNT)是一种由用户设置的浏览器标志,用来告知网站用户不希望被跟踪。尽管DNT设置的初衷是为了增强用户的隐私保护,但它也可以被用作浏览器指纹的一部分。
用户可以在浏览器的隐私设置中启用这个选项,这样每次浏览器向网站发送请求时,都会包含一个DNT头部,值通常为1(表示用户不希望被跟踪)。
当网站收集用户的浏览器信息时,DNT设置可以作为区分用户的一个特征,因为并不是所有用户都会调整这个设置。因此,如果大多数用户没有启用DNT,而某个用户启用了,这个信息就可以与其他浏览器指纹信息组合使用,从而增加了识别该用户的可能性。
传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布TLS 1.0标准文件(RFC 2246)。随后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛使用这个协议。许多网站,如Google、Facebook、Wikipedia等也以这个协议来创建安全连线,发送资料。目前已成为互联网上保密通信的工业标准。
SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的资料做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。
资料来源:维基百科
代理(英语:Proxy)也称网络代理,是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。在后一种情况中,代理服务器可能对目标服务器的资源下载至本地缓存,如果客户端所要获取的资源在代理服务器的缓存之中,则代理服务器并不会向目标服务器发送请求,而是直接传回已缓存的资源。一些代理协议允许代理服务器改变客户端的原始请求、目标服务器的原始响应,以满足代理协议的需要。代理服务器的选项和设置在计算机程序中,通常包括一个“防火墙”,允许用户输入代理地址,它会遮盖他们的网络活动,可以允许绕过互联网过滤实现网络访问。
代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。代理不改变请求URI,并不会直接发送给前方持有资源的目标服务器。持有资源实体的服务器被称为源服务器。从源服务器返回的响应经过代理服务器后再传给客户端。
资料来源:维基百科 Best Proxy Reviews
域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.中国”、“XXX.美国”的域名可以在地址栏直接输入并访问,而不需要安装插件。
资料来源:维基百科
Cookie,类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。
在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。
Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。
资料来源:维基百科
Canvas是网页上一个可以让程序绘制图形的区域。网站可以通过在Canvas上绘制复杂的图形和文字,然后分析这些内容在您电脑上的具体显示方式,因为每台电脑显示这些图形和文字的细节都有微小的不同,如轮廓、阴影、颜色和像素排列方式的细微差异。
这些微小的差异反映了您电脑上的一系列设置和硬件特性,比如屏幕分辨率、使用的字体和图形处理器等。正因为每个人的电脑配置都是独一无二的,这就使得Canvas绘制出来的图形成为了一种“数字指纹”。网站可以利用这个指纹来识别和追踪用户,即使用户更换了浏览器或删除了Cookies。
User Agent(UA)是一个浏览器发送给网站的字符串,它包含了您使用的浏览器类型、版本、操作系统等信息。
对于一个使用Google Chrome浏览器的Windows 10用户,User Agent可能看起来像这样:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
网站可以利用User Agent提供的信息,为用户提供与设备和浏览器兼容的内容和功能。例如,一个面向手机用户的网站会根据UA来决定是否提供触屏友好的界面。
如果您想更进一步了解User Agent,可以阅读这篇文章
Indexed Database API(简称IndexedDB,以前称WebSimpleDB)是W3C推荐的一项网页浏览器标准,是为提供一个具有索引的JSON对象集合的事务性本地数据库操作接口。W3C于2015年1月8日发布了IndexedDB接口的最终建议。
IndexedDB可以用于浏览器内实现的功能,例如书签,以及Web应用程序,如电子邮件。
资料来源:维基百科
两者都是图形相关的API,它允许网页利用设备的图形处理单元(GPU)来渲染复杂的3D图形。我们能在网页里玩到一些酷炫的3D游戏,就是这些API的功能。
网站可以利用这些API获取用户的GPU信息,形成硬件相关的指纹,从而用来跟踪用户。
资料来源: https://blog.browserscan.net/zh/docs/what-is-webgpu