Exe 作为 Web 服务终结点



我得到了一个Web服务端点,我偶然发现了如何正确实现它。 它似乎是一个返回 XML 回复的参数化执行文件。 没有文档。

我习惯了肥皂,wcf和休息,但这对我来说完全不知道,有没有人指导或最好的案例如何实现这样的服务? 我可以使用HTTP GET使用它,但还有一些问题留给我:

我知道这些问题很广泛...但我在互联网中找不到任何关于它的信息。

  • 有没有一种安全的方法将 exe 文件发布为 Web 服务?
  • 实现这样的接口有什么关键的缺点吗?
  • 让我自己变成傻瓜,这只是一个别名?

示例网址: http://very.exhausting.company/Version/SuperStrange.exe?parameter=String

Web 服务器

所谓的 Web 服务端点只不过是侦听物理机或虚拟机上的某个主机(通常为 0.0.0.0)和某个端口的 Web 服务器,并对发送到 Web 服务器关心处理的该主机、端口和 URI 的 HTTP 请求进行响应。

任何 Web 服务器本身都是应用程序或应用程序的静态或动态组件,如以下示例所示:

  • JBoss,Glassfish,Tomcat等是应用程序,称为应用程序服务器,其中部署了实现Web服务器的容器/servlet/插件和相应的端点。它们侦听某些端口,公开通用 Web 服务器将请求路由到这些容器及其 servlet;
  • 一个在 JVM 上以java -jar开头的胖罐子,它部署了一个vert.x顶点,该顶点具有侦听某个端口的vert.xHttpServer,无非是 Web 服务器;
  • 解释器
  • (例如基于express模块解析和执行 JavaScript 代码node.js)很可能会在某个端口上部署 Web 服务器;
  • 最后,用 C++ 或 Go 等语言编写的静态或动态链接的应用程序可以在某个端口上公开 Web 服务器列表。

上述所有情况都具有不同的部署机制,但它们部署的内容本质上是相同的:一个软件,它侦听某个端口上的HTTP请求,根据请求执行一些逻辑并将HTTP响应返回给调用方。

您的 Windows exe 文件很可能是提供 Web 服务器的静态链接应用程序。

协议

所以我们知道你有一个Web服务器,因为它对HTTP GET做出反应。它与REST,SOAP等有什么关系?实际上,REST,SOAP等是更高级别的协议。TCP是低级的,HTTP基于它,你的服务器支持它。REST,SOAP和您提到的其他所有内容都是基于HTTP的高级协议。所以你只知道你的应用程序(Web服务器)支持HTTP,但你不知道它实现了哪个更高级别的数据交换协议。它肯定实现了一些,至少是其作者想出的用于在客户端和此应用程序之间交换数据的自定义版本。

您可以尝试对其进行逆向工程,但不清楚如何找到所有可能的端点,参数,有效负载结构,接受的标头等。 本质上,您有一个发布某种API的Web服务器,但是没有通用的方式来判断该API是什么。

安全

您周围的世界不必知道 API 是如何发布的。您可以将上述 4 个 Web 服务器实现中的任何一个放在完全相同的防火墙或具有 SSL 终止的反向代理后面,仅通过 SSL 公开一个主机和端口。因此,就世界而言,安全性没有区别,无论您是将其部署为 exe 还是作为战争部署到 JBoss 中。这并不是说您的exe文件是安全的:根据它的实现方式,它可能允许各种攻击,但同样,对于任何机制来说都是如此。

相关内容

  • 没有找到相关文章

最新更新