当前位置: 首页 > 知识库问答 >
问题:

javascript - 为什么js没办法获取用户电脑的硬件信息?

段干飞翔
2024-06-03

为什么js没办法获取用户电脑的硬件信息?网上都说为了安全考虑。那为什么装在用户电脑的cs软件就可以访问硬件信息?难道这些就不用考虑安全了吗?

共有3个答案

壤驷向明
2024-06-03

因为成本差很远。我可以通过 qq 微信 给你发一个链接,或者网页上挂一个链接,然后用户点一下就来到我的网站。但是本地软件需要下载、安装、运行,两者之间的效率差得多,自然对风险防护的要求也差得远。

阳宾实
2024-06-03

这本质就是一个信任的问题,你安装某个软件,就代表你信任这个软件,在你的授权范围内它可以做它的任何事。

但是浏览器是个例外,浏览器只是个 “窗口”,可以链接到任意一个网站,浏览器没法代表你去信任这些网站,同样的,浏览器也没办法承担这背后带来的损失(包括且不限于自身和用户的损失)。

放在以前, IE 的 ActiveX,就几乎具有操作系统的所有权限,虽然 IE 设置了一些门槛来限制 ActiveX 的运行,但实际上这个门槛很低。

比较常见的,以前大多数银行的在线的网银业务都需要安装一个认证控件,用户只需要点几下,就给启用了,有的还贴心加上了图文教程教你怎么启用。

而作为用户,你只能信任银行的控件不会乱来,因为他现在可以做任何事情,这对于大公司一般来说是有保障的,而对于一些没有底线小网站呢?

到时候出了事儿,锅又丢给浏览器 “我就点了个链接而已,我的密钥就被偷了、系统就中毒了”。


这几年 JS 的标准中,都在有限制的开放一些 API 访问权限,但是这些权限都是为了来增强 Web 的使用,比如 File System API 、Web Bluetooth API、WebUSB API 等,一系列有用的接口。

而不是用来应对一些无关紧要,甚至无理的需求。


要获取信息,不是没有办法,只是看这个方法能否接受。
比如,你可以使用 Electron 打包成你自己专属的软件(浏览器)。
或者编写一个 C 端软件,在本地启用一个 HTTP 服务,响应你需要的信息,并且注册成开机自启服务,你再在代码里面请求这个接口。

翟展
2024-06-03

为什么 JavaScript 无法获取用户电脑的详细硬件信息,而某些本地安装的客户端软件(CS软件)却可以访问硬件信息,这主要出于以下原因:

JavaScript 的运行环境和权限限制

JavaScript 主要在浏览器中运行,而浏览器对 JavaScript 访问用户系统的权限进行了严格的限制。这种限制是为了保护用户的安全和隐私,防止恶意脚本获取用户的敏感信息或进行未经授权的操作。在浏览器中,JavaScript 的权限被限制在浏览器沙箱(sandbox)中,无法直接访问用户系统的底层硬件信息。

客户端软件的权限和安装过程

与 JavaScript 不同,本地安装的客户端软件在安装过程中通常会请求一系列的系统权限。这些权限允许软件访问系统的底层资源,包括硬件信息。用户在安装软件时,会看到一个权限请求对话框,需要明确同意软件请求的权限。这样,用户在安装软件时已经对软件可能进行的操作有所了解,并作出了明确的选择。

安全性的考虑

对于本地安装的客户端软件,虽然它们可以访问硬件信息,但这并不意味着它们不需要考虑安全性。实际上,软件开发者需要非常小心地处理用户数据,并遵守相关的隐私政策和法规。此外,操作系统和防病毒软件也会监控这些软件的行为,以防止它们进行恶意活动。

JavaScript 与客户端软件的不同用途

JavaScript 主要用于构建网页和 web 应用程序,它的设计初衷并不是为了访问硬件信息。而客户端软件则通常是为了实现更复杂的功能,包括与硬件设备的交互,因此它们需要更多的系统权限。

总结来说,JavaScript 无法获取用户电脑的详细硬件信息主要是出于安全和隐私的考虑,而本地安装的客户端软件之所以可以访问硬件信息,是因为它们在安装过程中请求了相应的权限,并且受到了操作系统和防病毒软件的监控。

 类似资料:
  • 本文向大家介绍Python获取电脑硬件信息及状态的实现方法,包括了Python获取电脑硬件信息及状态的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文以实例形式展示了Python获取电脑硬件信息及状态的实现方法,是Python程序设计中很有实用价值的技巧。分享给大家供大家参考之用。具体方法如下: 主要功能代码如下: 希望本文所述对大家Python程序设计的学习有所帮助。

  • 本文向大家介绍使用python获取电脑的磁盘信息方法,包括了使用python获取电脑的磁盘信息方法的使用技巧和注意事项,需要的朋友参考一下 使用Python获取电脑的磁盘信息需要借助于第三方的模块psutil,这个模块需要自己安装,纯粹的CPython下面不具备这个功能。 在iPython交互界面中进行如下演示: 查看电脑的磁盘分区: 从上面的结果看出,电脑只有一个分区。针对最后的结果专门通过判断

  • 我多次运行这个程序,并对其中的每一个进行后台处理,直到不再有足够的内存可以分配。然而,这种情况从未发生过。我运行了一个linux命令,即使多次运行这个程序,空闲内存也从未减少过256 MB。 但是,另一方面,如果我使用而不是,那么就有一个巨大的区别:

  • 本文向大家介绍php获取客户端电脑屏幕参数的方法,包括了php获取客户端电脑屏幕参数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取客户端电脑屏幕参数的方法。分享给大家供大家参考。具体分析如下: 首先需要说明的是php是服务器端的语言,是获取不到客户端的屏幕的宽度和高度的。但是有变通的方法就是通过客户端脚本语言javascript获取客户端的电脑屏幕的宽度和高度,然后通过a

  • 问题内容: 我正在开发向用户介绍设备的应用程序。我在SO上遇到了许多问题,但没有找到答案。我想找到 型号编号 Android版 基带版本 内核版本 内部编号 我的手机的RAM。 对于此Thankx,我将不胜感激。 问题答案: 我在代码中使用了它,所以我把所有内容都放了:

  • 问题内容: 我将代码简化为我可以做的最简单的express-js应用程序: 我的目录如下所示: 但是,当我访问时,出现以下错误: 我正在使用和。我究竟做错了什么? 问题答案: 尝试。 要在您的请求URL中使用: 查看此页面上的示例: