我正在编写一个客户端 - 服务器应用程序,我公司的用户笔记本电脑上有一个小应用程序。
他们需要读取/写入sql数据(只是一个相当小的数量,本质上是一个查询,以查看最后一次登录的人)。
我不希望将我的内部SQL服务器暴露给互联网上的“任何”主机,但是可以从(受信任的)互联网网络主机进行http访问。我打算在我们的内部IIS服务器上编写一个Web服务,可以由外部Web主机使用。然后我计划在外部主机上建立第二个Web服务,作为客户端的目标。
基本上工作流程将是:
客户端通过webservice查询外部主机 - >外部主机通过Web服务查询内部Web服务器
这是否过于复杂,或者是否可以避免在我的防火墙上从任何主机向内部服务器打开http / s流量?
答案 0 :(得分:0)
虽然这可行,但它有点过于复杂。托管一个Web服务,并要求网络团队帮助您公开并保护其面向外部的一面。
例如,您的服务器可能有两个网卡,一个用于内部,一个用于外部流量。 DNS也可以将外部地址路由到内部IP地址。这使问题复杂化的原因是,对Web服务的更改将需要在两个位置进行更改。此外,你现在在链中有两个可以打破的点。您正在实现的模式称为外观,通常这用于抽象细节,实际上会想到它,这更像是代理设计模式的情况。
我看到的另一个潜在问题是,这种类型的服务可以被一些更令人讨厌的开发人员(HACKERS)利用来收集用户名。您没有提及人们将如何对此服务进行授权,并且从您的描述中可以看出,任何人都可以使用此服务。然而,这只是一种预感,因为你真的没有提供足够的信息。