【问题标题】:Securing Database Access from Web Service via proxy?通过代理从 Web 服务保护数据库访问?
【发布时间】:2012-07-18 14:13:13
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# wcf security iis database-connection


    【解决方案1】:

    与这些东西一样,这完全取决于您需要的东西有多安全。您可以加密您的 web.config:

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

    但是你必须问,如果你的攻击者有能力破坏你的网络主机,他们将能够找到你的其他服务器,然后也可能有能力破坏它 - 不是 100% 确定网络是什么这里的收获是(除了让你的生活更加困难)。

    【讨论】:

    • 感谢@Paddy,您证实了我的怀疑,我还意识到通过在 WCF 主机和 Internet 之间放置代理服务器可以获得相同的安全收益。这和你的回复足以说服我的团队。
    猜你喜欢
    • 2014-12-14
    • 1970-01-01
    • 2016-01-06
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多