情况:
我有一个开发的 asp.net 网站,它位于我们路由器后面的服务器上,该网站需要能够通过互联网从我们的服务器连接到客户端 sql 服务器实例。
附加信息:
我的 asp.net 网站是一个数据验证工具,它针对个人数据库运行数百条 sql 语句来验证其中的数据。
问题:
- 做这个的最好方式是什么?
最好的意思是,安全且易于实施
可能的解决方案:
- 客户端路由器和我们的路由器上的端口转发只允许我们的 IP 访问
- 端口敲门实现
- VPN
非常感谢任何问题的评论和关注!
情况:
我有一个开发的 asp.net 网站,它位于我们路由器后面的服务器上,该网站需要能够通过互联网从我们的服务器连接到客户端 sql 服务器实例。
附加信息:
我的 asp.net 网站是一个数据验证工具,它针对个人数据库运行数百条 sql 语句来验证其中的数据。
问题:
最好的意思是,安全且易于实施
可能的解决方案:
非常感谢任何问题的评论和关注!
您的 ASP.NET 应用程序真的需要连接到客户端数据库吗?这听起来不是个好主意。
一些替代解决方案可能是:
轮询: 将在客户端运行并与您的 ASP.NET 应用程序联系、接收数据然后将其插入数据库的应用程序。这听起来与您的初衷相似,但略有不同。客户端正在启动通信,因此您无需担心连接性,本地应用程序还可以执行数据库检查/业务规则/应用安全性,例如与您的 ASP.NET 应用程序的 HTTPS 通信等。
客户端/服务器: 与轮询解决方案类似,您可以在客户端有另一个应用程序来设置通信(可能是 WCF net TCP / http SOAP),客户端可以注册到您的 ASP.NET 应用程序,然后您可以将数据发送到在推送架构中,您可以随时使用它。
上述两种解决方案都只是简单的想法,而不是完整的实施指南,但它可能会帮助您探索其他途径。
服务: 您能否将数据存储在本地,并为您的客户提供一种接收数据的方式,而不是将其直接写入他们的数据库?例如,每个客户端的 RSS/XML 提要?
如果替代方案不适合您的实施要求,并且您必须连接到许多客户端基础架构,我认为您需要支持上面列出的所有选项,具体取决于它们的内部 IT 策略(如果它们甚至允许接受外部连接) 他们可以规定他们更喜欢哪一个。
我工作的公司目前使用各种系统来执行此操作。我们一直只在我们的网络和客户端之间使用私人 B2B VPN 连接,只打开我们的软件所需的端口。如果客户愿意,这可能是您最好和最简单的连接形式。我们将此连接限制为仅限有线连接,并且仅限来自已知为公司机器的 MAC 地址。但是您可以根据需要微调它以适应您的应用程序。
如果您正在寻找不那么具有侵入性的东西,我建议您编写一个 WCF 服务,将您需要的数据公开到您的网站并让客户安装,如果他们想要购买服务,大多数客户都愿意这样做至少在我的经验中,来自另一家公司。
另一种选择是让您的网站成为“盒装”产品,并将软件出售给客户,让他们安装在他们的网络内部并在 LAN 上运行,而不必授予您访问权限。