Exe作为Web服务端点

问题描述 投票:1回答:1

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

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

我知道这些问题非常广泛......但我在interwebz中找不到任何相关内容。

  • 有没有一种安全的方法将exe文件发布为webservice?
  • 实现这样的界面是否有任何严重的缺点?
  • 让我自己变成傻瓜,这只是一个别名?

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

rest web-services
1个回答
4
投票

Web服务器

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

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

  • JBoss,Glassfish,Tomcat等是应用程序,称为应用程序服务器,其中部署了实现Web服务器和相应端点的容器/ servlet /插件。这些侦听一些端口暴露通用Web服务器将请求路由到这些容器及其servlet;
  • 一个胖罐子开始在一个JVM上使用java -jar,它部署了一个vert.x垂直,其特点是在一些端口上监听vert.x HttpServer只不过是一个Web服务器;
  • node.js这样的解释器解析并执行基于express模块的JavaScript代码很可能会在某个端口上部署Web服务器;
  • 最后,用C ++或Go等语言编写的静态或动态链接的应用程序可以在某个端口上公开Web服务器列表。

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

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

协议

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

您可以尝试对其进行反向工程,但目前尚不清楚如何找到所有可能的端点,参数,有效负载结构,接受的标题等。实际上,您有一个Web服务器发布某种API,但没有告诉API是什么的通用方式。

安全

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

© www.soinside.com 2019 - 2024. All rights reserved.