0

情况:

我有一个开发的 asp.net 网站,它位于我们路由器后面的服务器上,该网站需要能够通过互联网从我们的服务器连接到客户端 sql 服务器实例。

附加信息:

我的 asp.net 网站是一个数据验证工具,它针对个人数据库运行数百条 sql 语句来验证其中的数据。

问题:

  1. 做这个的最好方式是什么?

最好的意思是,安全且易于实施

可能的解决方案:

  1. 客户端路由器和我们的路由器上的端口转发只允许我们的 IP 访问
  2. 端口敲门实现
  3. VPN

非常感谢任何问题的评论和关注!

4

2 回答 2

1

您的 ASP.NET 应用程序真的需要连接到客户端数据库吗?这听起来不是个好主意。

  • 你无法控制另一端的网络
  • 客户可能会删除/更改/删除他们的数据库等
  • 通常,大多数人不会乐意允许通过 Internet 连接到数据库,即使它受到防火墙规则或 VPN 的保护。
  • 不愿允许从外部来源对内部资源进行身份验证

一些替代解决方案可能是:

轮询: 将在客户端运行并与您的 ASP.NET 应用程序联系、接收数据然后将其插入数据库的应用程序。这听起来与您的初衷相似,但略有不同。客户端正在启动通信,因此您无需担心连接性,本地应用程序还可以执行数据库检查/业务规则/应用安全性,例如与您的 ASP.NET 应用程序的 HTTPS 通信等。

客户端/服务器: 与轮询解决方案类似,您可以在客户端有另一个应用程序来设置通信(可能是 WCF net TCP / http SOAP),客户端可以注册到您的 ASP.NET 应用程序,然后您可以将数据发送到在推送架构中,您可以随时使用它。

上述两种解决方案都只是简单的想法,而不是完整的实施指南,但它可能会帮助您探索其他途径。

服务: 您能否将数据存储在本地,并为您的客户提供一种接收数据的方式,而不是将其直接写入他们的数据库?例如,每个客户端的 RSS/XML 提要?

如果替代方案不适合您的实施要求,并且您必须连接到许多客户端基础架构,我认为您需要支持上面列出的所有选项,具体取决于它们的内部 IT 策略(如果它们甚至允许接受外部连接) 他们可以规定他们更喜欢哪一个。

于 2013-01-17T14:03:03.067 回答
1

我工作的公司目前使用各种系统来执行此操作。我们一直只在我们的网络和客户端之间使用私人 B2B VPN 连接,只打开我们的软件所需的端口。如果客户愿意,这可能是您最好和最简单的连接形式。我们将此连接限制为仅限有线连接,并且仅限来自已知为公司机器的 MAC 地址。但是您可以根据需要微调它以适应您的应用程序。

如果您正在寻找不那么具有侵入性的东西,我建议您编写一个 WCF 服务,将您需要的数据公开到您的网站并让客户安装,如果他们想要购买服务,大多数客户都愿意这样做至少在我的经验中,来自另一家公司。

另一种选择是让您的网站成为“盒装”产品,并将软件出售给客户,让他们安装在他们的网络内部并在 LAN 上运行,而不必授予您访问权限。

于 2013-01-17T14:49:33.563 回答