百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

前端如何在 Chrome 中最大限度收集硬件信息

myzbx 2025-09-24 00:38 3 浏览

在 Chrome 这样的现代浏览器里,想直接获取用户的“真实硬件信息”(例如 CPU 型号、显卡型号、主板信息、序列号等)是非常受限制的,因为浏览器为了防止指纹追踪和隐私泄露,故意屏蔽或模糊了很多硬件细节。

## 1. 前端(纯浏览器 JavaScript)能获取到的硬件信息

纯 JS 在浏览器沙箱里,只能拿到一些有限信息,比如:

console.log(navigator.userAgent); // 浏览器和系统大致信息
console.log(navigator.platform); // 平台信息(Windows/Mac/Linux)
console.log(navigator.hardwareConcurrency); // CPU 逻辑核心数
console.log(navigator.deviceMemory); // 设备内存(GB,可能是近似值)
console.log(screen.width, screen.height); // 屏幕分辨率
console.log(screen.colorDepth); // 色彩深度


可用 API 示例:

- navigator.userAgentData(Chrome 89+):

navigator.userAgentData.getHighEntropyValues([
"platform", "platformVersion", "architecture", "model", "uaFullVersion"
]).then(console.log);

但注意:这个 API 返回的信息也是经过隐私处理的,比如不会直接告诉你 CPU 型号,只会给 architecture: "x86" 这种粗略信息。

- WebGL

通过 WebGL 渲染器信息可以获取到显卡型号(部分情况下会模糊成 "ANGLE"):

const canvas = document.createElement('canvas');
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');

if (debugInfo) {
	console.log(gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL)); // GPU 型号
	console.log(gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL)); // GPU 厂商
}

## 2. 前端不能直接获取的硬件信息

浏览器中 禁止直接访问:

- 主板型号、序列号

- 硬盘信息

- CPU 具体型号(只能知道核心数)

- 网络适配器的 MAC 地址

- 设备唯一 ID

如果需要这些信息,必须:

- 用户明确授权 并运行原生程序(如 EXE、APP、PWA with native bridge)

- 或者通过浏览器调用 WebUSB、WebSerial、WebHID 等 API,但这些 API 需要用户手动同意并连接特定设备

# 3. 进阶手段(需要用户同意)

- WebUSB / WebHID:可与硬件直接通讯(用户必须手动授权)

- 本地应用配合:例如在客户端运行本地程序(Electron、C++、Python),获取硬件信息后通过 WebSocket / HTTP 发送到网页

- 浏览器插件(Extension):扩展有更高权限,但仍不能随意拿序列号

# 总结

在 Chrome 里,你最多能用 JS 获取 CPU 核心数、内存大小、显卡型号、屏幕信息,而无法直接获得“真实硬件唯一标识”。

如果你是为了做 设备指纹 或 防作弊检测,可以综合:

- UA / 分辨率 / 内存 / 核心数

- WebGL GPU 信息

- Canvas 指纹、Audio 指纹

来生成一个较稳定的 ID,但也不是百分百真实硬件信息。

相关推荐

智能设备弹窗频发?3步教你彻底解决小v自动弹出困扰

创作声明:本文章原创,未经作者许可,禁止转载、摘编、复制及建立镜像。转载请注明出处,文章内容仅作参考,如有雷同,纯属巧合。图片和文字均不涉及真实人物和事件。在数字化浪潮席卷全球的今天,智能设备已成为我...

微软在Edge桌面搜索栏加入视觉搜索

IT之家9月16日消息,科技媒体WindowsReport今天(9月16日)发布博文,报道称在Canary频道最新MicrosoftEdge浏览器中,微软邀请Windo...

GetX框架里容易被忽略的那些小知识

在使用GetxController(以及它的子类,如GetxService)时,我们通常会接触到几个常见的生命周期方法,比如onInit、onReady、onClose等。实际上,GetX在...

充电宝弹出这种提示框,千万别点!

2025年国家网络安全宣传周现场展示了一批新型窃密工具一款可窃取手机数据的共享充电宝引起关注这些工具究竟是如何实施窃密的?又该如何防范?这款充电宝之所以能实现窃密,关键在于其内部搭载的一个特殊小零件。...

大屏可视化组态软件【数据绑定】_组态软件视频

写在前面:在最新的样式中,数据源和属性合并了成数据,以前的图纸数据会做转换处理。如果之前创建有多条数据源,默认会将之前的属性列表放到第一条数据源下面。如果没有建立一条数据源,之前的属性将不会展示到页...

如何关闭Win11触控板,轻松解决烦人的触摸问题

如何关闭Win11触控板,轻松解决烦人的触摸问题随着Windows11的发布,许多用户发现他们在使用新操作系统时遇到了触控板的问题。有时候触摸板可能会无故启动,导致一些不必要的麻烦和干扰。遇到这种情...

三星手机消息快捷窗口回复设置步骤,非常实用,可点赞收藏设置。

都说三星手机的使用功能像一本大字典,很多人用了好几年三星,其实三星很多功能都不会设置,也不知道。因此很多看三星用户都感叹,用了好几年三星手机,看到别人发的三星手机某个功能设置的时候,就感觉像白用三星手...

主板BIOS能识别2280固态硬盘,但系统里看不到怎么办?

在日常安装固态硬盘的过程中,许多用户都有一个疑虑:2280规格的M.2固态硬盘在主板BIOS中能够识别,但进入Windows系统后却无法看到。这个问题不仅令人困惑,还可能影响数据访问和系统安装。今天,...

WMS系统从入门到精通(十一)-原型图设计及逻辑实战-复核打包

复核打包是仓储管理系统中的关键环节,直接影响出库效率与准确率。本文通过原型图设计与业务逻辑实战,系统拆解WMS复核打包模块的核心流程与产品思考,为产品经理提供从0到1的落地参考。之前文章与大家分享了W...

第十八篇 如何解绑通信行程卡?为什么要解绑行程码?

今天讲的是如何解绑行程码?那么我们为什么要解绑行程码呢,因为行程码上有我们的姓名身份证甚至门牌号,解绑后可以降低我们的安全隐患。接下来我给大家演示一遍如何解绑行程码,第一步,打开支付宝,点击右下角“我...

注意!共享充电宝弹出这个提示框,千万别点!

2025年国家网络安全宣传周在云南昆明开幕,期间,网络安全博览会同步举行。博览会现场展示了一批新型窃密工具,这些工具究竟是如何实施窃密的?又该如何防范?下面展示了一款可窃取手机数据的共享充电宝。表面充...

五个不太为人知的ESC键妙用法_esc键的功能是什么意思啊

对于普通用户来说,位于键盘左上方的ESC键并非高频使用键。然而,你是否知晓,实际上借助ESC键能够实现诸多快捷操作呢?上网浏览时,倘若不慎点错某个网址,只需轻按ESC键,便能即刻停止当前网页的打开进程...

第三方登录不跳转!Safari 不支持,开发者懒省事,用户如何破局?

谁没经历过网页登录的糟心事儿?早年每个网站都要注册账号,密码记一堆,忘了还得找回;后来有了第三方登录,比如“用谷歌登”,以为解放了,结果新坑更隐蔽。靠第三方Cookie证明身份,这玩意儿同时被广...

笔记本电脑怎么快速查看 IP地址?_怎样查看笔记本的ip地址

使用笔记本电脑时,我们难免要查看电脑的IP地址,排查网络错误或设置局域网络共享,但对于不懂电脑的小白来说,根本不清楚如何快速查找网络IP地址。今天,小编就以Windows系统为例,介绍多种查询IP地址...

手把手教你用3 种实用方法 在SMART Line 触摸屏做用户登录

大家好呀~最近有朋友问我,做HMI项目时用户登录功能总搞不明白,尤其是用SMARTLine触摸屏和WinCCflexibleSMART软件的时候,总怕漏了哪个步骤。其实我刚开始接触的...