我们有一个相当大的内部 MS SQL 数据库。我需要在我们的网站上为一些买家提供一个界面。有哪些好的选择可以通过我们的防火墙向网站提供数据?
目前,所有从外部对内部网络的访问都是通过 Cisco VPN 完成的。
虽然我们确实希望向经过身份验证的用户提供对整体数据子集的访问权限(通过 ASP.NET 网站的过滤器),但如果所有数据都泄露,那将非常糟糕。
安全是一个值得关注的重要问题。
- Web 服务器不在现场
- 数据库服务器在现场
有任何想法吗?
谢谢。
答案1
可能有很多方法可以做到这一点,有些方法比其他方法更安全。在 Web 服务器上设置一个数据库,然后通过从数据库服务器到 Web 服务器的 VPN 连接定期推送相关数据。
答案2
我目前通过几种不同的方式来实现这一点:
- 我在本地数据库上创建了有限的用户帐户,这些帐户仅对相应的表或视图具有读取权限。然后我使用 stunnel 在异地服务器和本地服务器之间创建加密通道。异地服务器从本地数据库提取数据,就像它是本地的一样。两台机器都经过了适当的防火墙保护。
- 我将在异地服务器上创建一个虚拟数据库,并按计划推送相应的数据,同样使用 stunnel 进行链接。有时我会在本地服务器上创建虚拟数据库,并让远程服务器与其通信,就像上面的第一种方法一样。
这两个选项都没有给我带来温暖的感觉,但它们确实有效。使用 stunnel 很好,因为它是免费的,而且在 Windows 和 Linux 服务器之间设置起来相对容易。这里要记住的是:“如果远程服务器受到攻击会发生什么?”
我正在将其中一些流程转换为 Web 服务。您可以查看类似以下内容的内容感知创建这些服务。这有几个好处。1) 您不会直接公开您的数据库。2) 您可以使用标准 Web 安全机制直接向客户公开 Web 服务,并且比原始数据库访问具有更多的控制权。