【问题标题】:How to manage passwords for database access from an asp.net website如何管理从 asp.net 网站访问数据库的密码
【发布时间】:2013-03-06 01:25:45
【问题描述】:

只是好奇从 asp.net Web 应用程序管理数据库访问的最佳实践。我们目前将用户名和密码放在 web.config 中,但这在内部安全性方面不够好(显然),所以我决定通过修改 web.config 以使用 windows 域来使用 windows 域用户,然后将用户添加到应用程序池标识。这一切都很好,但是当域用户的密码更改时会发生什么?这是否意味着在应用程序池中使用此用户身份的所有 Web 应用程序也需要更改密码?这将是一场 IT 噩梦。是否有人对允许 webapp 在不暴露密码的情况下访问数据库的最佳方法提出建议,并且如果密码更改,则无需在所有 webapps 中更新密码?谢谢

【问题讨论】:

    标签: asp.net iis-7 web-config connection-string windowsdomainaccount


    【解决方案1】:

    更好的解决方案是设置一个单独的应用程序池,该应用程序池设置有一个对数据库具有完全访问权限的服务帐户,在选择新的应用程序池并使用集成安全性后重新启动 Web 应用程序。

    使用非常强(且冗长)的密码并将帐户设置为密码不会过期且用户无法更改密码。

    这可以防止在 web.config 文件中使用明文。

    【讨论】:

    • 我已经这样做了。我的问题是,我们希望轻松管理多个应用程序池的密码,而无需在更改密码后重新输入每个应用程序池的密码。
    【解决方案2】:

    我建议您使用 SQL 混合模式身份验证并为您的应用程序使用 SQL 帐户。 web.config 中的用户名和密码并加密配置文件的该部分。

    这里有一些关于配置加密的信息。

    http://msdn.microsoft.com/en-us/library/zhhddkxy(v=vs.100).aspx

    【讨论】:

    • 但这不会引起同样的问题吗?我正在授予对 sql server 上的域用户的访问权限,该用户当前正在通过 IIS 工作。但我遇到的唯一问题是密码管理。如果我有 20 个站点使用同一个域用户,并且更改了用户的密码,那么所有 db 访问都会失败吗?如果 SQL 用户密码需要更改,也会发生同样的事情。然后需要更新所有 webapp 的 web.configs。那不是我想做的事。必须有一种方法可以在不破坏 Web 应用程序的数据库访问权限的情况下管理密码。
    • 当您配置应用程序以验证某个用户(AD 或 SQL)并更改密码时,您将需要重新配置应用程序。我不知道您是否可以采取任何措施来避免这种情况。
    • 我对此感到有点惊讶。你会认为 MS 会有一个简单的工具来在密码更改时更新应用程序。必须有更好的方法。
    猜你喜欢
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    相关资源
    最近更新 更多