通过PHP或JavaScript(Intranet)与客户端应用程序通信

时间:2015-05-26 21:45:02

标签: php web-applications client client-server hardware-interface

我是新询问者,但我已经在SO这里待了很长时间。我需要一个我的团队系统的建议,我正在为一个项目开发。

TLDR:我们的网络应用程序希望将命令发送到客户端应用程序。我知道这是不安全的,但它只适用于内部网。有没有办法从浏览器中的Web应用程序向客户端机器发送shell命令?也许是某种Firefox扩展?

基本上,我们应该拥有一个基于云的Web应用程序(基于PHP),能够与连接到客户端计算机的设备(智能卡读卡器)配合使用。简而言之,系统的GUI是使用Web技术构建的。

为了给出清晰的图片,假设您有一台笔记本电脑,并希望能够将您的条形码扫描仪设备(通过USB连接)与您在浏览器中运行的POS应用程序结合使用。

网络应用程序旨在托管在云端,但我们可以控制将用于访问我们的网络应用程序的笔记本电脑和平板电脑的初始设置。

目前,我们在客户端设备上安装并运行了守护程序。该守护进程的作用类似于HTTP服务器,并从浏览器窗口控制USB连接设备(我们发送HTTP URL,如http://127.0.0.1/scan)。守护进程接受命令,如果是localhost或使用实际的客户端机器的IP。

我相信之前的开发人员创建了这个守护进程,希望直接从云托管的应用程序发送HTTP请求。

这个问题的主要问题是,我们的团队大多数时候都会通过接入点访问互联网,因此路由器会为客户端机器分配本地IP地址。我们的网络应用程序不知道应该向谁发出命令。

由于将使用此功能的员工将被部署在任何地方,我们无法控制他们用来访问我们的网络应用程序的任何AP的路由器配置。 NAT就出局了。

到目前为止,我们已经为此提出了一个解决方案:

我们编写了一个额外的守护程序(与设备驱动程序一起),它解释来自浏览器的消息并将它们发送到客户端的localhost(设备驱动程序守护程序的模拟httpserver)。所以,现在,我们唯一的问题是我们的网络应用程序如何能够通过浏览器进行对话'到我们的翻译脚本/应用程序。

有没有办法从网络应用程序向客户端发送shell命令?我知道这是一个重大的安全漏洞,但我们有能力确保服务器和客户端都不会执行任何恶意操作。

或许我们可以让我们的web-app写入客户端托管的xml或txt文件,我们的解释器守护程序只是读取xml或txt文件?

有人在研究这个问题时发现了另一个线程中的ActiveX。有什么想法吗?

最后的办法是创建一个与设备驱动程序守护程序进行交互的Firefox扩展。我们不喜欢这种解决方案,因为在某些平板电脑上,我们不会使用firefox作为浏览器。

客户端机器将是Windows笔记本电脑或Raspberry Pi(运行Raspbian ARM LINUX)

谢谢!

0 个答案:

没有答案