通过代理保护从Web服务访问数据库?

时间:2012-07-18 14:13:14

标签: c# wcf security iis database-connection

我们正在脱离典型的本机应用程序开发,并正在开发一些新的基于Web的应用程序服务。我们使用的是.Net和WCF,很可能是在IIS上托管。

我们的服务需要使用数据库来保存数据。在所有情况下,我们打算使数据库服务器与我们的主机不同。我们发现的大多数资源似乎都表明将数据库连接字符串存储在web.config(或用于自托管的app.config文件)中。我们担心的是,由于服务是面向Web的,因此它运行的盒子更容易被黑客攻击/泄密。如果发生这种情况,攻击者现在拥有数据库连接字符串,并且可以完全访问所有数据。

最初的想法是使WCF服务简单地代理服务器应用程序,该服务器应用程序位于另一台保存连接信息并执行所有处理逻辑的计算机上。这样,如果网络主机遭到入侵,他们将不得不弄清楚如何与我们的服务器应用程序通信,或者还要破坏该机器,以获得数据库访问权限。虽然我们确实担心代理的性能成本,并且可能在服务器应用程序中有瓶颈。

对这种方法的关注是,我们没有发现WCF / IIS文献推荐这种方法的方式,但我们可能只是不知道为了找到这样的信息而被称为什么。问题:代理是一种好的做法,为什么/(为什么不)(或者我可以在哪里找到关于这个主题的更多信息),还是有更好的做法?

1 个答案:

答案 0 :(得分:0)

与这些事情一样,这一切都取决于你需要的东西的安全性。您可以加密web.config:

http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx

但是你必须要问,如果你的攻击者有能力破坏你的网络主机,他们就能找到你的其他服务器,也可能有能力妥协 - 不是100%肯定网络是什么这里获得的是(除了让你的生活更加艰难)。