我们正在离开我们典型的本地应用程序开发,并正在开发一些新的基于Web的应用程序服务。我们使用.Net和WCF,并且很可能在IIS上托管。通过代理从Web服务保证数据库访问安全吗?
我们的服务将需要使用数据库来保存数据。在所有情况下,我们都打算让数据库服务器与我们的主机不同。我们发现的大部分资源似乎都表示将数据库连接字符串存储在web.config(或用于自托管的app.config文件)中。我们担心的是,由于该服务面向网络,它正在运行的盒子更容易被黑客入侵/被入侵。如果发生这种情况,攻击者现在拥有数据库连接字符串,并可以完全访问所有数据。
最初的想法是让WCF服务只是代理服务器应用程序,该服务器应用程序驻留在保存连接信息并执行所有处理逻辑的另一台机器上。这样,如果网络主机受到威胁,他们将不得不弄清楚如何与我们的服务器应用程序通信,或者妥协这台机器以获得数据库访问权限。虽然我们确实担心代理服务器的性能成本,并可能在服务器应用程序上有一个瓶颈。
对这种方法的关注是,我们没有找到太多的WCF/IIS文献来推荐这种方法,但我们可能只是不知道为了找到这些信息而被称为什么。问题是:这是一种很好的做法,为什么/(为什么不)(或者我可以在哪里找到关于这个主题的更多信息),还是有更好的做法?
Thanks @Paddy,您确认了我的怀疑,我也意识到通过在我们的WCF主机和Internet之间放置代理服务器,我们可以获得大部分相同的安全获益。这和你的回复足以说服我的团队。 – vossad01 2012-07-22 23:00:59