Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebSocket可以替代Java小程序吗?_Javascript_Java_Websocket_Applet - Fatal编程技术网

Javascript WebSocket可以替代Java小程序吗?

Javascript WebSocket可以替代Java小程序吗?,javascript,java,websocket,applet,Javascript,Java,Websocket,Applet,是否可以使用JavaScript的WebSocket API在客户端与本机应用程序进行通信,就像必须访问文件系统的小程序的替代方案一样 我将通过ws://localhost:xxxx与客户端进行通信,但我不知道是否可以做到这一点 如果我可以,这将是安全的。我需要考虑一些安全问题吗?不,您不能在用户的机器上安装WebSocket服务器,以替换访问本地文件系统的功能,就像Java小程序那样 如果用户有意在自己的机器上主动安装WebSocket服务器,则不能这样做 您最大的问题是Javascript客

是否可以使用JavaScript的WebSocket API在客户端与本机应用程序进行通信,就像必须访问文件系统的小程序的替代方案一样

我将通过ws://localhost:xxxx与客户端进行通信,但我不知道是否可以做到这一点


如果我可以,这将是安全的。我需要考虑一些安全问题吗?

不,您不能在用户的机器上安装WebSocket服务器,以替换访问本地文件系统的功能,就像Java小程序那样

如果用户有意在自己的机器上主动安装WebSocket服务器,则不能这样做

您最大的问题是Javascript客户端代码没有对用户文件系统的无限制访问。这是一个安全特性。这是一个重要的安全特性。您不能将任意文件放置在用户计算机的任意位置

在此之后,Javascript客户端代码也无法在系统上启动进程,即使它可以在任意位置安装WebSocket服务器。同样,这是一个关键的安全特性

最后,如果您的Javascript客户机代码可以在用户的机器上安装和执行任意软件,您就不需要WebSocket服务器来处理您现在正在寻找的用例


如果您要说服用户在他们自己的机器上为您的用例安装WebSocket服务器,即访问用户的本地文件系统,那么您将需要考虑主要的安全问题。并非所有文件系统都具有基于用户和组的读/写/执行权限。。。即使这样,用户也可能从特权帐户中启动服务器

浏览器被设计成隐式地信任它所连接的服务器,不管它接收到什么Javascript。如果您的用户后来浏览了一个恶意站点,该站点知道您在本地安装的WebSocket服务器,以及它可能需要的命令,那么浏览器将非常乐意允许恶意服务器向您用户的WebSocket服务器发送他们希望的任何命令

我个人强烈建议尊重用户文件系统的神圣性,遵守浏览器对Javascript客户端访问本地计算机的限制,如果您决定说服用户安装本地WebSocket服务器,您必须尽可能小心安全。验证*all*输入,无论您认为攻击者是否可能生成它,并且从不将已知风险列入黑名单,只将已知安全功能列入白名单


请记住,如果您要将用户的文件系统公开给web,那么您实际上是在将用户计算机的钥匙交给任何能够找到门的人。

WebSocket只是客户端和服务器之间的通信协议。如果使用https启动,则可以对其进行保护。它不能用于在客户端与本机应用程序通信,但我在这里看到了一个示例。也许你想说我不知道,但我可以;或者我搞错了。这个链接展示了如何通过javascript打开websocket连接。这是您需求的50%,确实是可能的。另一半呢?我想我可以创建一个在客户机上运行的服务器应用程序,并监听我的web应用程序的本地主机的端口xxxx。。。但我不确定。。。在新服务器(客户端)中,我将访问文件系统,并通过WebSocket将其返回到web应用程序。如果我错了,为什么我不能?。提前感谢。问题更多:如何将服务器安装到客户机上,以及如何配置客户机以便进行连接?当然,在您自己的本地开发机器上很容易做到。但考虑一个现实的情况。