网站如何获取这些信息

网站拿到浏览器信息,主要靠三条路:请求自己带上的字段、页面脚本通过 Web API 读取的值,以及让浏览器画一画、测一测才出现的结果。这些都发生在浏览器允许的范围内,不是把整台电脑的文件和软件清单读走。

学习目标

阅读本文后,您将能够:

  • 区分请求、脚本读取和渲染测试这三类来源
  • 判断一项信息是浏览器主动带上的,还是页面测出来的
  • 理解权限和浏览器差异会改变最终拿到的集合

请求里自带的信息

您一打开页面,浏览器就会在请求里带上一部分字段。网站不用再跑脚本,也能看到这些。

浏览器会带上网站因此知道
IP浏览器这次请求使用的公网地址
User-Agent浏览器和平台的一份声明
Accept-Language浏览器优先使用的语言

这些字段跟着每次请求走。页面还没执行 JavaScript,它们已经到了服务器。

脚本主动读取的信息

页面里的 JavaScript 可以调用浏览器提供的 API,读取当前环境里已经暴露的值。

页面可以读取大致来自
屏幕与窗口Screen、Viewport 等显示信息
时区、语言浏览器的区域设置
Client Hints浏览器主动提供的部分平台信息
WebGL 参数显卡与渲染器名称一类字段

脚本只能读到 API 返回的那一项。没有对应接口,页面就拿不到。

渲染和测试得到的信息

有些信息不是现成字段。网站要让浏览器画一段图、试一个功能,再看结果。

网站做的事得到的是
画 Canvas这段图在当前环境里怎么被画出来
跑 WebGL3D 路径的渲染结果
探测 API这个浏览器实际支持哪些功能

和前两类相比,这里多了一次测试。结果取决于当前这套渲染和功能环境。

为什么要分清这三类?

换 IP 只改请求出口。清 Cookie 不改屏幕、时区和渲染结果。知道信息从哪一条路来,才知道改动会碰到哪一类、碰不到哪一类。

为什么不同网站拿到的不一样

  • 网站不是把整台电脑读走。没有接口的内容,页面拿不到。
  • 有的站只看请求,有的站还会跑脚本和渲染测试。
  • 浏览器的隐私设置会关掉或改写一部分字段。
  • 同一项信息,不同浏览器返回的详细程度可能不同。
  • 权限弹窗挡住的能力,页面在您允许之前读不到。

常见问题

网站是不是可以读取我电脑里的文件?

不能靠这些途径读取您的文件。它拿到的是请求、API 和测试结果,不是磁盘上的文档。

关掉 JavaScript 以后,网站就什么都看不到了吗?

脚本读取和渲染测试会停。请求里自带的 IP、User-Agent 和语言仍然会到服务器。

每个网站用的是同一套采集吗?

不是。采集哪些字段由网站自己决定,也受浏览器允许的范围限制。