【发布时间】:2012-07-18 14:13:13
【问题描述】:
我们正在脱离典型的原生应用程序开发,正在开发一些新的基于 Web 的应用程序服务。我们正在使用 .Net 和 WCF,并且很可能托管在 IIS 上。
我们的服务需要使用数据库来保存数据。在所有情况下,我们都打算使数据库服务器与我们的主机不同。我们发现的大多数资源似乎都表明将数据库连接字符串存储在 web.config(或用于自托管的 app.config 文件)中。我们担心的是,由于该服务是面向网络的,因此它运行的盒子更有可能被黑客入侵/妥协。如果发生这种情况,攻击者现在拥有了数据库连接字符串,并且可以完全访问所有数据。
最初的想法是让 WCF 服务简单地代理到服务器应用程序,该服务器应用程序位于另一台机器上,该机器保存连接信息并执行所有处理逻辑。这样,如果网络主机被入侵,他们将不得不弄清楚如何与我们的服务器应用程序通信,或者也破坏该机器,以获得数据库访问权限。尽管我们确实担心代理的性能成本,并且可能会在服务器应用程序中遇到瓶颈。
对这种方法的担忧是,我们在 WCF/IIS 文献中没有找到太多推荐这种方法的方式,但我们可能只是不知道为了找到这些信息而调用什么。问题:这样的代理是一种好的做法吗?为什么/(为什么不)(或者我在哪里可以找到关于这个主题的更多信息),还是有更好的做法?
【问题讨论】:
标签: c# wcf security iis database-connection