用户代理欺骗是使用误导性的用户代理值。 它使服务器读取请求,就像它来自不同的浏览器、版本、操作系统、设备类别或爬虫一样。
客户端提供用户代理。 它有助于兼容性和流量分析,但不验证身份。 更改它不会重新创建指定的浏览器或设备。 浏览器引擎、网络、cookie 和行为保持独立。
什么是用户代理?
用户代理是与个人服务或自动化流程进行通信的软件。 浏览器是一个用户代理。 搜索爬虫、API 客户端、下载管理器或监控工具也是如此。 随机用户代理 是软件选择声明的浏览器身份的一种方式。
Web 客户端通常通过 HTTP User-Agent 请求标头来标识自己。 该字符串可以包含多种类型的信息:
- 浏览器或软件产品
- 产品版本
- 操作系统或平台
- 设备类别,例如移动设备或桌面设备
- 浏览器历史记录中遗留的兼容性标记
真实的浏览器字符串通常包含其他浏览器的名称。 Chrome 包括 Safari 和 AppleWebKit 令牌。 许多浏览器也以 Mozilla 开头。 这些标记之所以保留,是因为网站几十年来一直在针对浏览器做出特定的决策。
当前的 HTTP 语义标准 将 User-Agent 字段描述为有关请求背后的软件的信息。 常见用途包括分析、故障排除和兼容性问题的解决方法。 该标准并未将该字段设为身份验证方法。
用户代理欺骗如何运作?
用户代理欺骗改变了客户端声称的内容。 基本交换在概念层面上很简单。
- 客户端通过 HTTP 请求提供 User-Agent 值。
- 服务器记录或解释该值。
- 它可以调整内容、对流量进行分类或应用规则。
- 其他证据可能支持或反驳该主张。
浏览器还可以通过 navigator.userAgent 和 User-Agent 客户端提示公开相关信息。 这些接口有重叠,但它们不是同一领域。
欺骗可能会影响一个值或多个相关值。 即使如此,它也不会取代处理 JavaScript、绘制页面、打开 TLS 连接或存储会话的软件。 请求可以声称是 Safari,同时公开适合 Chromium 的浏览器功能。
为什么用户代理会被欺骗?
并非每个更改的用户代理都有相同的目的。 有些更改是正常测试的一部分。 其他人支持欺骗或虐待。
常见的授权用途包括:
- 测试浏览器类别和移动内容选择
- 重现兼容性问题
- 验证分析或机器人管理规则
- 运行经批准的自动化或隐私研究
还有滥用的情况:
- 让自动化看起来像一个普通的浏览器或可信的爬虫
- 从仅检查 UA 的规则中隐藏机器人
- 扭曲浏览器、设备或广告分析
- 支持未经授权的抓取或重复的帐户滥用
仅凭字符串无法揭示适用的用途。 授权、请求模式、帐户活动和目标服务提供了缺失的上下文。
更改用户代理不会改变什么?
用户代理是请求的一部分。 它不是整个浏览器环境的开关。
| 层 | 示例 | 更改用户代理的影响 |
|---|---|---|
| HTTP 身份声明 | 浏览器、版本、平台、爬虫名称 | 直接更改所声明的客户端身份 |
| 浏览器行为 | JavaScript API、布局、功能支持 | 不替换浏览器引擎 |
| 浏览器信号 | 屏幕、触摸、字体、Canvas、WebGL、语言 | 不会自行更新这些值 |
| 协议行为 | TLS ClientHello,HTTP协议设置 | 不重建网络堆栈 |
| 网络环境 | IP地址、ASN、代理路由、DNS | 不改变网络源 |
| 会话上下文 | Cookie、令牌、登录历史记录 | 不创建新会话 |
| 用户行为 | 导航、计时、操作、请求率 | 不会让自动化活动变成真实的人工操作 |
浏览器指纹 结合了许多可观察的属性。 用户代理可能是一个输入,但它不能代表完整的组合。
TLS 指纹 检查在处理 HTTP 请求之前发生的握手。 编辑 UA 不会重建 ClientHello。
移动用户代理也不创建移动网络连接。 该请求仍使用其现有的 IP 和网络路由。
站点如何检测欺骗性的用户代理?
没有通用测试可以证明用户代理是真实的。 站点可以在独立信号之间寻找一致性。 当多个层指向同一个客户系列时,结果会更明显。
有用的检查包括:
- 将 UA 与用户代理客户端提示进行比较
- 检查浏览器API是否符合声明的引擎和版本
- 将平台声明与屏幕、触摸、语言和图形信号进行比较
- 检查 TLS 和 HTTP 行为是否适合所声明的浏览器系列
- 当客户端声明已知服务时检查 IP、ASN 和网络历史记录
- 查看会话连续性、请求率和帐户行为
有些检查比其他检查更可靠。 罕见的字符串并不能证明欺骗。 常见的 Chrome 字符串并不能证明真正的 Chrome 用户。 嵌入式网络视图、企业软件、隐私工具和浏览器更新都可能产生不寻常的结果。
现代 Bot 检测 不会将用户代理视为裁决。 它将该值用作一个输入,然后将响应与不确定性级别进行匹配。
实际的回应可能是:
- 允许或观察低风险流量。
- 要求对敏感行为进行更强有力的验证。
- 当行为产生操作风险时应用速率限制。
- 当有多个信号支持该决定时,审查或限制会话。
用户代理可以证明爬虫身份吗?
不。 任何客户端都可以在其用户代理中声明爬虫名称。 熟悉的机器人令牌是一个标签,而不是请求来自指定公司的证明。
Google 在其 Googlebot 文档 中明确了这一界限。 网站所有者可以通过发布的 IP 范围或正向和反向 DNS 检查来验证 Googlebot。 用户代理帮助识别请求声称的内容。 独立的网络检查有助于检验这一说法。
其他爬虫可能会发布 IP 列表、签名的请求方法或没有强验证选项。 网站应遵循每个爬虫的文档。
用户代理减少和客户端提示
由于浏览器不断添加兼容性标记和平台详细信息,传统的 UA 字符串变得很长。 他们还暴露了可能有助于指纹识别的信息。
Chromium 引入了用户代理减少来限制默认字符串中发送的详细信息。 在某些情况下,浏览器和操作系统信息变得不那么具体。 需要选定详细信息的站点可以请求用户代理客户端提示。
客户端提示比旧的 UA 字符串更加结构化。 他们可以报告浏览器品牌、平台信息、移动状态和所选版本详细信息。 更详细的提示可能取决于服务器请求、安全连接和浏览器策略。
这不会使客户端提示验证身份。 它们仍然是客户提供的背景,并且在风险重要时应根据独立证据进行检查。
开发人员还应该询问是否需要浏览器识别。 功能检测 对于 Web 兼容性通常更安全。 它检查浏览器是否支持所需的功能,而不是根据产品名称进行猜测。
用户代理欺骗与相关术语
| 术语 | 主要问题 | 与 UA 欺骗的关系 |
|---|---|---|
| 用户代理轮换 | 客户端是否随时间改变 UA 值 | 轮换描述的是变化频率,而不是目的 |
| UA嗅探 | 站点是否解析 UA 以推断浏览器或设备 | 它观察声明而不是改变它 |
| 浏览器指纹 | 网站是否结合了浏览器和设备信号 | 比UA领域更广泛 |
| 浏览器指纹欺骗 | 是否有多个浏览器信号被修改 | 它可能包括 UA、Canvas、WebGL 或其他值 |
| 设备欺骗 | 设备相关信号是否被歪曲 | 这是一个更广泛的网络和移动概念 |
| 设备仿真 | 软件是否重现另一个设备环境 | 模拟器可以诚实地声明或用作欺骗的一部分 |
| 爬虫冒充 | 客户是否声称自己是指定机器人 | UA 欺骗是这种说法的一种方式 |
| IP欺骗 | 数据包源地址是否伪造 | 这是一个不同的网络层概念 |
设备欺骗 可能涉及位置、应用标识符、操作系统状态或完整性证据。 用户代理欺骗范围较窄,重点关注声明的 UA 身份。
安卓模拟器在软件中再现移动环境。 它不会自动成为欺骗设备。 仿真描述了环境如何运行。 欺骗描述了它所声称的内容。
限制、隐私和误报
用户代理分析作为粗信号效果最好。 它可以支持兼容性、分析和风险评估。 当系统要求它证明身份时,它就会变得不可靠。
当规则期望一种完美的浏览器模式时,误报很常见。 合法流量可能来自:
- 应用内和嵌入式浏览器
- 注重隐私的浏览器
- 辅助功能和企业软件
- 旧设备和遗留应用程序
- 自动化质量保证和监控系统
- UA信息减少的浏览器
站点应记录请求受到质疑或限制的原因。 敏感的决定需要一条恢复路径。 团队还应该限制保留 UA 和指纹数据的时间。
一致的用户代理支持客户端声明。 不一致的说法会削弱这一主张。 这两个结果都无法证明用户是谁或他们打算做什么。
要点
- 用户代理欺骗会更改已声明的客户端身份。
- 用户代理是元数据,而不是身份验证。
- 更改它不会改变 IP、TLS 堆栈、cookie、浏览器引擎或行为。
- 授权测试和滥用自动化可以使用类似的 UA 值。
- 当浏览器、协议、网络、会话和行为证据一致时,检测效果最佳。
- 客户提示改进了结构,但不会将客户提供的数据转化为证据。
- 不匹配应该导致谨慎的响应,而不是自动的欺诈判决。
用户代理欺骗常见问题解答
简单来说什么是用户代理欺骗?
用户代理欺骗是指发送将客户端描述为不同浏览器、操作系统、设备类别或爬虫的用户代理值。 它改变了声明,而不是请求背后的软件或设备。
网站可以检测到欺骗性的用户代理吗?
网站可以将 UA 与客户端提示、浏览器功能、TLS 行为、网络上下文和会话活动进行比较。 这些检查产生的是证据,而不是确定性。 隐私工具和不寻常的客户也可能造成不匹配。
更改用户代理是否会更改您的IP地址?
不。 User-Agent 是一个 HTTP 值,而 IP地址属于网络路径。 更改 UA 不会更改连接、ASN、DNS 行为或代理路由。
用户代理与浏览器指纹相同吗?
不。 用户代理是一种浏览器提供的值。 浏览器指纹结合了屏幕属性、字体、Canvas、WebGL、语言、时区和其他信号。 UA 更改后,它可能仍然可识别。
用户代理欺骗与设备欺骗相同吗?
不。 用户代理欺骗涉及声明的客户端值。 设备欺骗范围更广,可能涉及浏览器属性、移动标识符、位置、操作系统状态或完整性证据。
用户代理能否证明请求来自 Googlebot?
不。 其他客户端可以复制 Googlebot 用户代理。 Google 建议检查其发布的 IP 范围或使用正向和反向 DNS 验证。 其他爬虫可能会使用不同的方法。
开发人员是否应该使用用户代理进行浏览器检测?
仅当有明确的需求和可靠的后备方案时。 特征检测通常更好,因为它测试了所需的功能。 当浏览器减少信息或添加兼容性标记时,UA 解析可能会中断。
用户代理欺骗是否违法?
这取决于授权、目的、网站条款和适用法律。 批准的兼容性测试不同于冒充受信任的爬虫来获取未经授权的访问。 技术行为本身并不能决定法律结果。

ZH
