跳转到主要内容
浏览器指纹
更新于昨天

User Agent

什么是User Agent?

UserAgent,简称UA,是一个使服务器能够识别用户使用的浏览器类型版本以及运行浏览器的操作系统等信息的字符串。它作为浏览器请求头部信息的一部分发送给服务器,以便服务器可以返回合适格式和版本的内容。

跟Cookie一样,网站可以根据浏览器的User Agent为用户提供个性化的体验,比如:

  • 正确显示网页:确保无论你用手机还是电脑访问,网页都能正常显示。

  • 个性化体验:如果某些特效在手机上不起作用,在电脑上却可以,那么网站可以根据UserAgent调整这些功能。

  • 快速加载:如果你的网络连接慢,UserAgent可以帮助网站提供一个简化版页面,让加载速度更快。

  • 保护安全:有时候它也能帮助识别出哪些不寻常的访问可能是自动程序(比如机器人)在搞鬼

所以呢,虽然我们平时看不见UserAgent,但它确实在幕后默默地为我们提供了很多方便。

User Agent的示例

在不同的设备和操作系统上,UserAgent字符串会有所不同。这些字符串为网站提供了关于你正在使用的浏览器和设备类型的重要线索。让我们来看几个实际的例子:

Chrome User Agent

Windows电脑上,Chrome浏览器的UA:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

Firefox User Agent

Windows电脑上,Firefox浏览器的UA:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0

Cookie

Cookie,类型为“小型文本文件”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。

因为HTTP协议是无状态的,即服务器不知道用户上一次做了什么,这严重阻碍了交互式Web应用程序的实现。在典型的网上购物场景中,用户浏览了几个页面,买了一盒饼干和两瓶饮料。最后结帐时,由于HTTP的无状态性,不通过额外的手段,服务器并不知道用户到底买了什么,所以Cookie就是用来绕开HTTP的无状态性的“额外手段”之一。服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

在刚才的购物场景中,当用户选购了第一项商品,服务器在向用户发送网页的同时,还发送了一段Cookie,记录着那项商品的信息。当用户访问另一个页面,浏览器会把Cookie发送给服务器,于是服务器知道他之前选购了什么。用户继续选购饮料,服务器就在原来那段Cookie里追加新的商品信息。结帐时,服务器读取发送来的Cookie就行了。

Cookie另一个典型的应用是当登录一个网站时,网站往往会请求用户输入用户名和密码,并且用户可以勾选“下次自动登录”。如果勾选了,那么下次访问同一网站时,用户会发现没输入用户名和密码就已经登录了。这正是因为前一次登录时,服务器发送了包含登录凭据(用户名加密码的某种加密形式)的Cookie到用户的硬盘上。第二次登录时,如果该Cookie尚未到期,浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。

语言

浏览器语言通常指的是用户在浏览器设置中选择的首选语言,这决定了用户在访问多语言网站时所看到的默认语言版本。这些信息通常通过HTTP请求的“Accept-Language”头部发送给网站的服务器,它可能包含一个或多个语言标签,通常按照用户偏好的顺序排列。

分辨率

屏幕分辨率不仅包括物理屏幕的实际像素数,还包括浏览器窗口的当前视图大小。例如一块显示器的分辨率为1920*1080,浏览器的可视区域可能并不会占满整个屏幕,分辨率就只有1920*1050。

因为浏览器还有工具栏、标签栏等等。因此,物理屏幕分辨率与浏览器的可视区域尺寸也能成为一种浏览器指纹,因为不同的用户采用的显示设备不同,当网站将屏幕分辨率与其他指纹结合在一起的时候,每个用户的指纹就会显得更加独特。

时区与当地时间

既然通过IP地址可以了解一个网站访客来自于哪个国家、哪个城市,那么用户所在国家的时区、以及当地时间也就可以推算出来。

网站还可以通过运行JavaScript代码来获取用户的本地时间和时区。

当用户访问网站时,如果提供的时区信息与其他浏览器指纹信息(如IP地址推断的地理位置)不一致,网站可能会检测到这种不一致。这可能会引起网站的注意,特别是那些有防欺诈系统的网站,它们可能会寻找这类不匹配作为异常行为的指标。

因此,在使用指纹浏览器修改与“时间”相关指纹的时候,要注意与IP地址匹配。

AudioContext

AudioContext 是浏览器提供的一个工具,它能处理和生成音频,让网站能播放和修改声音。

每个设备处理声音的细微差异可以通过这个工具被捕捉到,形成一种“声音指纹”。这种指纹独一无二,因为它反映了每个人电脑上不同的音频硬件和软件设置,所以也就成为了浏览器指纹之一。

LocalStorage

localStorage作为HTML5本地存储web storage特性的API之一,主要作用是将bai数据保存在客户端中,而客户端一般是指上海网站设计用户的计算机。在移动设备上,由于大部分浏览器都支持web storage特性,因此在android和ios等智能手机上的web浏览器都能正常使用该特性。


localStorage保存的数据,一般情况下是永久保存的,也就是说只要采用localstorage保存信息,数据便一直存储在用户的客户端中。即使用户关闭当前web浏览器后重新启动,数据让然存在。知道用户或程序明确制定删除,数据的生命周期才会结束。


在安全性方面,localstorage是域内安全的,即localstorage是基于域的。任何在该域内的所有页面,都可以访问localstorage数据。但让然存在一个问题,就是各个浏览器厂商的浏览器之间的数据是各自独立的。也就是说,如果在firefox中使用localstorage存储一组数据,在chrome浏览器下是无法读取的。同样,由于localstorage数据是保存在用户的设备中的,因此同一个应用程序在不同设备上保存的数据是不同的

Geo

通过IP地址,网站可以了解用户的国家、地区、城市、经纬度,有时甚至是邮政编码或社区等更具体的地理位置信息。

这些信息可以用来提供地理定位服务,如本地化内容、语言偏好设置和区域特定的广告或促销活动。

Fonts字体

每台计算机上安装的字体集合可能会因为用户的个人选择、操作系统、安装的应用程序和其他因素而有所不同。浏览器可以通过JavaScript API,如FontFaceSet接口,列出用户设备上可用的字体。

由于用户安装的字体可能会非常具体,尤其是当包括了非标准或自定义字体时,这些信息可以与其他浏览器数据结合起来,形成一个相对独特的指纹。这意味着,即使两个用户使用相同的浏览器和操作系统,他们的字体集也可能不同,从而为网站提供了区分不同用户的另一种方式。

Canvas

Canvas是网页上一个可以让程序绘制图形的区域。网站可以通过在Canvas上绘制复杂的图形和文字,然后分析这些内容在您电脑上的具体显示方式,因为每台电脑显示这些图形和文字的细节都有微小的不同,如轮廓、阴影、颜色和像素排列方式的细微差异。

这些微小的差异反映了您电脑上的一系列设置和硬件特性,比如屏幕分辨率、使用的字体和图形处理器等。正因为每个人的电脑配置都是独一无二的,这就使得Canvas绘制出来的图形成为了一种“数据指纹”。网站可以利用这个指纹来识别和追踪用户,即使用户更换了浏览器或删除了Cookies。

WebGPU和WebGL

两者都是图形相关的API,它允许网页利用设备的图形处理单元(GPU)来渲染复杂的3D图形。我们能在网页里玩到一些酷炫的3D游戏,就是这些API的功能。

网站可以利用这些API获取用户的GPU信息,形成硬件相关的指纹,从而用来跟踪用户。

WebRTC

WebRTC是一个浏览器插件,通常由需要快速直接连接的网络应用程序使用。由于WebRTC通过UDP协议建立连接,因此不会通过浏览器中使用的代理服务器路由。即使您使用的是代理服务器,网站也可能会利用这一事实暴露您真实的公共和本地IP地址。同样的插件也可以用来显示您的本地IP地址或跟踪您的媒体设备。

WebRTC插件泄露了什么

  1. 公共IP地址

  2. 本地IP地址

  3. 媒体设备编号和哈希

媒体设备

WebRTC是一种浏览器插件,通过允许直接点对点连接,无需安装额外的插件或其他本地应用程序,就在网页内实现了音频和视频通信。为了使插件正常工作,WebRTC提供了对您的媒体设备(如麦克风、摄像头和耳机)的访问权限。网站可以通过两种可能的方式利用这一机制:

  1. 设备枚举

  2. 媒体设备ID跟踪

Do Not Track

DoNotTrack(DNT)是一个HTTP标头字段(Header)。当用户启用此功能时,浏览器将在HTTP数据传输中添加一个标头字段:dnt:1。这个字段向网站服务器表明用户不希望被追踪。这样,遵守规则的网站就不会为了更精准的广告而追踪用户的个人信息。

SSL

传输层安全性协议(英语: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)。这个会谈密钥是用来将通信两方交换的资料做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。


Need more help? Contact us:


这是否解答了您的问题?