Javascript访问硬件

Javascript access to hardware?

本文关键字:硬件 访问 Javascript      更新时间:2023-09-26

我在一家拥有网络和移动应用程序的公司工作。他们将实施一些改变,以获得一个设备ID从移动和基于web浏览器的系统。看起来Javascript有一些能力获得硬件信息,如主板序列号等。我对此感到有点震惊,因为我认为我的桌面浏览器在这方面有些限制。

所以,我的问题是:

  1. 对于运行不同浏览器的WIN/MAC/Linux桌面系统是否正确?
  2. 无论如何,阻止这个并控制不道德的供应商/机构可以从我的系统中删除我的?

这完全是错误的。

浏览器内 Javascript(不使用插件)没有硬件访问,并且(我强烈认为)永远不会有。

一般来说,浏览器制造商(如微软的IE, Google Chrome, Mozilla Firefox等)不提供JavaScript机制来访问特定的硬件信息。

然而,在一些浏览器(特别是"传统"浏览器,如IE6)中,使用ActiveX、插件、Java applet,甚至特定的浏览器漏洞都可以通过在浏览器安全范围之外执行代码来泄露这类信息。您的雇主希望从哪个平台检索这些信息?

下面是一个通过JavaScript使用ActiveX的例子。

我在IE8中亲自测试了这段代码。正确显示主板信息,包括序列号。IE8提示允许脚本运行,但旧版本或配置不合理的版本可能会无条件运行脚本。(原始):
var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");
var properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard");
var e = new Enumerator (properties);
document.write("<table border=1>");
for (;!e.atEnd();e.moveNext ())
{
      var p = e.item ();
      document.write("<tr>");
      document.write("<td>" + p.HostingBoard + "</td>");
      document.write("<td>" + p.Manufacturer + "</td>");
      document.write("<td>" + p.PoweredOn + "</td>");
      document.write("<td>" + p.Product + "</td>");
      document.write("<td>" + p.SerialNumber + "</td>");
      document.write("<td>" + p.Version + "</td>");
      document.write("</tr>");
}
document.write("</table>");

为了防止这种情况发生在您的机器上,请使用现代浏览器(IE9, FF4+, Chrome)并始终保持最新。此外,要注意你安装的插件,更重要的是,你从哪里安装

  1. 。证明:FireFox, Chrome/Chromium等等。
  2. 别担心。JavaScript无法访问这些资源

浏览器无法访问硬件信息。

还有其他javascript工具,如Titanium或node.js可以访问硬件或任何其他信息