加密web.config的各个部分。我是不是该?

时间:2009-06-02 12:09:15

标签: asp.net

我负责在本地Intranet服务器上运行的几个ASP.NET Web应用程序。公司外部的用户不应该访问服务器,但如果没有必要,我不想留下任何机会。只有管​​理员才能访问文件系统。

我应该加密web.config的应用程序设置和连接字符串部分吗?我没有经常看到这一点,我想知道这是不是太过分或不是最好的做法。我的连接字符串中的密码和我用于在应用设置中查询AD的服务帐户的帐户信息。

BTW:我会使用

进行加密
 Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath);
ConfigurationSection section = webConfig.Sections["connectionStrings"];

if (section != null && !section.SectionInformation.IsProtected)
{
    section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
    webConfig.Save();
}

2 个答案:

答案 0 :(得分:3)

  

我应该加密web.config的应用程序设置和连接字符串部分吗?

如果连接字符串包含密码:那么是,没有其他合理的选择。

如果使用集成安全性连接到数据库,那么信息暴露将是数据库和服务器名称,这不是问题。但是可能更容易拥有始终加密的部署规则,因为更简单的规则更容易遵循和审核。

您还可以使用aspnet_regiis.exe加密部分,而不是编写自己的代码。在PowerShell(或cmd)提示符下输入aspnet_regiis.exe -?以查看选项。

答案 1 :(得分:1)

我为加密我的web.config文件做了类似的事情,我并不后悔。保持它并不复杂,它增加了另一层防御。由于安全性是在层中构建的,因此这样做没有错。