3

我正在考虑探索让我们的客户端软件作为服务在高端口上运行并侦听来自 127.0.0.1 的简​​单 http GET 请求的想法。理论上,我可以通过 js 从我的网站提供的网页访问此服务。

1) 用户安装客户端软件,将自身安装为服务并在 127.0.0.1:8080 上等待经过身份验证的请求

2)当用户点击我的主页时页面上的js向127.0.0.1:8080发出xhtml请求并询问状态

3) 然后主页向我的 Web 服务器发出另一个 js 请求,发送它收到的状态。

这将允许我的用户从浏览器实时上传/下载和编辑 USB 连接设备上的文件。轮询可能是类似于我们今天所做的后备方法。

有没有人这样做,有什么潜在的陷阱?这甚至会起作用吗?

4

4 回答 4

3

我看不到任何潜在的陷阱。不过,我确实有几点。

1/ 您可能希望确保您的服务仅接受来自本地计算机 (127.0.0.1) 的传入连接。否则,任何人都可以查看您的 JavaScript 并确定它正在与 [your-ip]:8080 通信。然后他们可以从远程站点(安全漏洞)自己尝试。

2/ 我不会使用端口 8080,因为它通常用于其他事情(备用 HTTP 服务器等)。使其可配置并选择一个不错的高随机类型值。

3/ 我不确定您要对第 3 点做什么,但我认为您正试图将状态发送回用户。在这种情况下,为什么您主页上的 JavaScript 不能在单个会话中获取状态并输出/更新要呈现给用户的 HTML?您的“另一个 js 请求返回到我的 Web 服务器”对我来说没有意义。

于 2008-12-02T03:16:26.990 回答
1

您可能无法向 127.0.0.1 发出 xml http 请求,因为 XMLHTTPRequest 通常仅限于与提供主要内容的域相同的域。如果服务器位于客户端计算机上,我不确定此限制是否适用。话虽如此,您仍然可以创建一个<script>src 指向 127.0.0.1 的标签,并让 Web 服务器返回一些 Javascript 来运行。如果您只需要一个简单的响应,这可能会很好。

于 2008-12-02T03:24:30.593 回答
0

我认为最好避免在 JavaScript 和 html 中实现应用程序逻辑。一旦用户单击网页上的按钮,JavaScript 应该向您的服务发送请求并允许它完成其余的工作。

于 2008-12-02T03:29:00.257 回答
0

根据您的目标用户群,您可能会遇到第 1 步(客户端自行安装)的问题。

  • 您需要为每个支持的环境(Win2K、Vista、Linux、MAC OS 9.0/10.0 等)进行自定义安装。
  • 如果您的用户在工作 PC 上被锁定,则根本不允许这样做。
  • 对于某些用户来说,这可能看起来与木马非常相似,除非您明确指出您将安装作为服务运行的软件。
  • 您没有提到卸载程序。用户讨厌“Adobe”之类的软件,它可以自行安装并且不提供任何明智的卸载选项
  • 否则,这种方法是合理的,并且有几个商业产品正是使用这种方法!

    于 2008-12-02T08:23:03.657 回答