【问题标题】:Desktop application loopback connections - reliable and safe?桌面应用程序环回连接 - 可靠且安全?
【发布时间】:2012-03-02 19:43:26
【问题描述】:

我正在使用 C++ 为专业用户编写桌面应用程序。我当前的设计依赖于第三方 C++ 组件,其 API 基于 TCP/IP。集成这个组件可能需要修改它,用传统的 C++ API 替换网络代码。

如果我可以不修改组件并以它期望的方式与它通信 - 通过网络,这会容易得多。为此,我需要将组件作为服务器运行,在某个高端口上侦听环回连接。

我对这种环回方法有两个顾虑。谁能减轻或证实我的恐惧?

可靠性和性能 环回连接可能会失败、被防病毒软件阻止或拦截。像这样:Loopback connections working in user's context but not working from Local System account

安全 我不太担心有人嗅探我的环回数据包,但我不希望我的服务器本身成为安全风险。让进程监听某个高端口是否有风险?

很多桌面应用程序都是这样运行的吗?

我最初是在 Windows 上开发,但将来可能会迁移到 Mac 和 Linux,所以这个问题适用于所有常见的桌面操作系统。

【问题讨论】:

  • 这个第三方组件的本质是什么?取决于它是什么,如果它没有某种不涉及 TCP/IP 的“本地”版本,我会感到惊讶。询问您的供应商是否有非联网版本。
  • 我能形容它的最好方式是“有点像网络服务器”。

标签: c++ networking tcp desktop-application loopback


【解决方案1】:

可靠性:如果组件本身是可靠的,那么监听环回接口就没有问题。如果组件不可靠,那么最好通过环回接口与它通信,而不是直接调用它的函数。您可以轻松处理断开连接并重新启动组件以继续工作,但如果您链接到组件并且组件将失败 - 您的应用程序也会失败。

性能:存在一些性能损失。目前的 CPU 能力并不大。对于大多数应用程序来说,它应该是可以接受的。

安全性:组件应绑定到本地主机地址以避免安全问题。但是具有足够访问级别的本地 3-D 方软件(病毒)软件可以拦截甚至修改通信流。其他任何沟通方式都一样。

Loopback 连接被广泛使用(java 将其用于互通,命名用于主服务控制等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2014-07-26
    • 2014-04-13
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多