我负责在本地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();
}
答案 0 :(得分:3)
我应该加密web.config的应用程序设置和连接字符串部分吗?
如果连接字符串包含密码:那么是,没有其他合理的选择。
如果使用集成安全性连接到数据库,那么信息暴露将是数据库和服务器名称,这不是问题。但是可能更容易拥有始终加密的部署规则,因为更简单的规则更容易遵循和审核。
您还可以使用aspnet_regiis.exe
加密部分,而不是编写自己的代码。在PowerShell(或cmd)提示符下输入aspnet_regiis.exe -?
以查看选项。
答案 1 :(得分:1)
我为加密我的web.config文件做了类似的事情,我并不后悔。保持它并不复杂,它增加了另一层防御。由于安全性是在层中构建的,因此这样做没有错。