为什么 JavaScript 无法获取硬件信息:安全与信任的博弈
浏览器与硬件信息获取的信任困境
对于为什么 JS 无法获取用户电脑的硬件信息,普遍的解释是出于安全考虑。然而,一些用户提出了质疑:既然安装在用户电脑上的 CS 软件可以访问硬件信息,为什么 JS 不行?难道这些软件就不需要考虑安全吗?
实际上,这本质上是一个信任问题。当用户安装某款软件时,表明他们信任该软件在授权范围内执行任何操作。
然而,浏览器是一个例外。作为连接不同网站的“窗口”,它无法代表用户信任所有网站,也无法承担潜在的损失风险。
历史上,IE 的 ActiveX 技术曾赋予软件接近于操作系统级别的权限,尽管 IE 设置了一些限制,但这些措施并不可靠。许多在线银行业务要求用户安装认证控件,这种做法将所有权限交给用户信任的银行。但对于小型网站或恶意网站,用户只能祈祷控件不会滥用权限。
随着 JS 标准的演进,一些访问权限得到了限制性开放,但主要目的是增强 Web 体验,例如文件系统 API 和蓝牙 API,而不是满足无关紧要的需求。
要获取硬件信息,并非没有办法。用户可以将 JS 打包成一个专属的浏览器软件(如 Electron),或编写 C 端软件在本地启动 HTTP 服务器,响应硬件信息请求。
以上就是为什么 JavaScript 无法获取硬件信息:安全与信任的博弈的详细内容,更多请关注硕下网其它相关文章!