web.config 使用 asp.net mvc 站点的数据库连接字符串。数据库和站点在同一台服务器上。需要安全吗?

web.config with db connection string for asp.net mvc site. DB and site on same server. Need security?

我已经阅读了很多有关加密 web.config 文件、仅加密数据库字符串或为数据库连接字符串创建一个完全独立的文件的内容。

我也知道网上有足够的material,但我找不到确切的答案。

当数据库和站点托管在同一台服务器上时,是否需要以某种方式保护我的 asp.net mvc 应用程序的 web.config?

如果是,最佳做法是什么? 因为这是关于安全的,所以我有点担心。

我会根据我所在组织的情况来回答。不再建议将数据库连接字符串存储在 appsettings.json 文件的配置中。我们的审计员不断浏览存储库以检查是否有人这样做。

作为最佳实践,我们将连接字符串放在 azure keyvault 中。它在存储时负责加密,在获取时负责解密。如果您不想使用第三方解决方案,只要您注意一些事情就可以了 -

  • 加密密码或整个连接字符串并将密钥仅保存在代码中(而不是在配置中)
  • 如果您的数据库在同一台服务器上,那么您可以完全禁用 sql 服务器身份验证并仅使用 windows 身份验证。这将使外部人员更难破解。
  • 从第 2 步进一步,尝试从 SSCM 禁用 TCP/IP 并仅使用 named pipes。那么任何人都不可能从您的机器外部连接到您的数据库。

如果您没有在应用程序中正确配置安全性,则可能会出现更多错误。如果您的服务帐户遭到入侵,即使是第三点也无法挽救您的数据库。我建议继续阅读这篇文章并将其视为一个永无止境的清单。