一个反常识: 在 Chrome 浏览器里如何拿到用户最真实的 CPU 和其他硬件信息(不走 UA

162 天前
 RiverRay

前端老鸟都知道一个常识

谷歌浏览器里面是拿不到真实 CPU 和硬件信息的

(:UA 那个很容易伪造好吧

今天再给你一个反常识:

其实,Chromium 内置了一个系统级插件。

这个插件允许 *.google.com 网站获取宿主机 CPU 信息

去 Chromium 源码里找找,发现插件 ID 是:nkeimhogjdpnpccoofpliimaahmaaome 。

而且,这个插件还能对外通信

so ,骚操作来了

我们可以随便打开一个 Google 的网站在 console 里面输入:

chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome',
{method: 'cpu.getInfo'},
response => console.table(response));

CPU 、进程还有负载 一五一十的就有了

看源代码,这个内置插件里面还暴露了不少其他方法,可以自己探索玩玩

说人话:

如果你做的是浏览器扩展,完全可以获取到宿主机的 CPU 还有其他硬件信息的

哈哈哈哈哈

24365 次点击
所在节点    Chrome
147 条回复
nieyujiang
162 天前
歪个楼.可以使用 navigator.userAgentData
.getHighEntropyValues([
"architecture",
"model",
"platformVersion",
"fullVersionList",
])获取相对真实的信息.
testliyu
162 天前
代理挂在香港的时候不行,换了个节点之后可以了
635925926
162 天前
@webbillion 又一个二极管,人家只是提到了这是个 api ,就认定人家啥啥啥了?
635925926
162 天前
67 楼
dongsuo
162 天前
用 thorium 也没能逃过一劫,烂公司!
regent
162 天前
各位大神有禁用和屏蔽的方法了吗? 还是只能转向 Firefox?
evam
162 天前
试了一下 arc 无法获取
epiloguess
162 天前
zzzlight
162 天前
复现成功,这谷歌自己给自己留的后门啊
lyx1975
162 天前
知道就知道呗,反正早就当自己在网上裸奔了
expy
162 天前
https://news.ycombinator.com/item?id=40918052
edge on linux 复现成功,不过浏览器本体代码直接跑物理机上,信息搜集早就一锅端了。
阴谋论一点可以说是给 fork 版本留的后门?
webbillion
162 天前
@635925926 #103 我只是一个猜测,打了一个问号。不然为何试图用插件都有这个 API 来混淆是非呢?所有插件可以用这个 API= Chrome 内置插件用这个 API 是正当的=Chrome 内置插件只对谷歌开放也是正当的。当然你可以说这是谷歌自己的浏览器它想干嘛就干嘛,不服的人或者公司可以自己开发全民都用的扩展或者浏览器或者系统来给自己开后门——事实上我也不会因此骂或者弃用 Chrome 。只是上来就为谷歌开脱,大可不必(能给出开发文档链接的人,不可能不懂这个问题的本质)。
salmon5
162 天前
要说作恶,那必须是微软的 bing ,通过 edge 浏览器爬用户的上网记录到 bing 里面。
caqiko
162 天前
@pikko #98 确实是我没想明白。扩展的 manifest 中声明的 externally_connectable 可以为指定的页面添加 chrome.runtime.sendMessage 方法。我试了在 devtools console 中发送消息,但是报错 background 收不到消息。 这样看的话,确实挺可疑的
salmon5
162 天前
Google 这个是小恶,微软的 bing 是罪大恶极。
salmon5
162 天前
@salmon5 #113
https://www.cnet.com/tech/services-and-software/microsoft-resolves-edge-setting-that-was-leaking-websites-you-visit/
现在的情况来看,edge 可能还在爬取用户的上网记录,给 bing 的爬虫。
DOLLOR
162 天前
这事儿我有点不理解,浏览器底层自己收集数据发给 google 自己服务器不就好了,为什么还要拐弯抹角给自家网站开个白名单,暴露 JS 接口,然后用 JS 来收集呢?🤣
simpleH
162 天前
有个疑问,拿到 archName ,modelName 会对用户有什么影响呢?和 ua 判断系统类型的操作有啥区别
SimonOne
162 天前
Vivaldi 好像不行
maikaze
162 天前
@SimonOne 我的 vivaldi 就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056113

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX