ASP.Net MVC 4 应用程序:加密 Web.Config 文件的最佳方式



我想知道在 ASP.Net MVC 4应用程序中加密Web.Config文件的最佳(最安全)方法是什么?我有一些使用 C# 开发内部应用程序的背景,但由于其他安全性已经到位,我们从未过多关注加密。

编辑:我的主机服务器是ORACLE,如果这改变了什么?一位朋友提到可能在部署带有"-pe"参数的代码后使用 aspnet_regiis.exe。有人对这种方法有任何优点/缺点吗?

编辑2:ORACLE是一个数据库,而不是一个服务器!我还能回家吗?!>_<</p>

典型的方法是使用 ProtectedConfigurationProvider 来加密敏感部分。有几个现有的实现。如果需要,您还可以实现自己的。

我想知道加密Web.Config文件的最佳(最安全)方法

"最安全"取决于您尝试防范哪些威胁。 您可以假设所有标准加密算法都是安全的,但是通过加密 web.config,您只需将保护 web.config 中的明文凭据的问题换成了保护加密密钥的问题。

通常,你将使用受保护的配置来加密 web.config。

  • 如果使用 DPAPI 提供程序,则将使用服务器的计算机密钥进行加密。 这意味着任何可以登录到服务器的人都可以破解加密。 也可以由对服务器上包含网站的文件夹具有写入访问权限的任何人,因为他们可以上传代码,例如带有嵌入式脚本的aspx页面,可以执行解密。 在以下情况下,这是一个不错的选择:

    • 您的服务器是安全的(不与其他不受信任的应用程序共享,例如托管环境)
    • 您不希望将 web.config 复制到其他服务器(例如在 Web 场中) - 它需要在每台服务器上独立加密。
  • 或者,如果 DPAPI 不符合您的要求,您可能应该使用 RSA 提供程序。 您可以使用 ACL 保护密钥,防止同一服务器上的其他用户进行未经授权的访问,并且可以在多个服务器之间共享密钥。

您可以使用 CryptoAPI 加密单个配置值。

您可以使用 DPAPI 加密整个部分。

最新更新