从chrome(或firefox)扩展访问windows命令行

是否可以编写以任意方式访问windows命令行的扩展?另外还有一些浏览器提供这种功能。从chrome(或firefox)扩展访问windows命令行

为什么?在我们的生产车间,我们有几个应用程序需要访问PC上的硬件。目前,我们必须编写和部署小应用程序来完成这个任务,但是从浏览器部署它们会很棒。

很明显,在正常情况下,这是一个安全问题,但可以添加一个可以绕过这个问题的扩展吗?

回答:

是的,在Firefox中,你当然可以做到这一点。

Firefox有4 types of extensions:(WebExtensions,Add-on SDK,Bootstraped,或Overlay/XUL)。

WebExtensions目前无法执行此操作,并且可能永远无法执行此操作(它们就像Google Chrome扩展程序一样)。 Mozilla强烈推动只有WebExtensions和Add-on SDK扩展。因此,这应该是一个附加SDK扩展。

您将需要使用system/child_process API,它是node.js child_process API的实现。您可以访问的API有如下一行:

var childProcess = require("sdk/system/child_process"); 

,您可以很容易create a new process与它使用stdin,stdout和stderr沟通。

您将不得不在主(后台)脚本中的子进程之间进行所有通信。所有communication with the webpage you are viewing必须在content script。您可以选择仅在URL匹配特定页面时使用内容脚本,或者使用page-mod(这将是没有任何任意网站能够运行命令的一部分)的域。您将需要pass messages back and forth through from your content script to your background script。

所以,基本上,通信会看起来像:

网页⟷内容脚本⟷背景脚本⟷子进程

这将是比较容易实现的消息传递方案,它允许网页运行任意命令,提供命令行参数,输入数据和接收输出数据等。

回答:

我不会推荐使用浏览器来做它。浏览器及其安全模型发展非常迅速,您可能会发现自己经常与变化作斗争。

相反,如果您的计算机位于域中,请使用组策略来部署您的应用程序。这里有一个指南:http://www.itninja.com/blog/view/the-guide-to-deploying-software-using-group-policy

如果你的工厂的电脑是不是在一个域或组策略看起来太复杂,那么你可以有运行一个批处理文件的图标快捷方式,复制应用到工厂的机器从本地资源。或者,如果您尝试在无人照管的情况下运行应用程序,则可以将该批处理文件作为计划任务运行。

祝你好运!

回答:

对于现代浏览器,您可以使用本机消息传递来实现此目的。This link告诉我们有一个项目将这个本地消息api添加到WebExtensions。

有关扩展程序,请参阅Native Messaging了解更多详细信息。

基本上,你需要一个扩展和本地主机,建立扩展和本地主机之间的通信,扩展用于从浏览器接收命令,而本地主机实际执行您想要的命令行做任何事情。

以上是 从chrome(或firefox)扩展访问windows命令行 的全部内容, 来源链接: utcz.com/qa/264174.html

回到顶部