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

时间:2013-10-30 13:24:38

标签: asp.net .net asp.net-mvc asp.net-mvc-4 encryption

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

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

EDIT2:ORACLE是数据库,而不是服务器!我可以回家吗?! > _<

3 个答案:

答案 0 :(得分:1)

典型的方法是使用ProtectedConfigurationProvider加密敏感部分。有几种现有的实现方式。如果需要,您还可以implement your own

答案 1 :(得分:1)

  

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

“最安全”取决于您要防范的威胁。您可以假设所有标准加密算法都是安全的,但是通过加密web.config,您只是在web.config中交换了保护明文凭据的问题,以解决保护加密密钥的问题。

通常,您将使用Protected Configuration加密web.config。

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

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

答案 2 :(得分:0)

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

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