代码之家  ›  专栏  ›  技术社区  ›  Tim Scarborough

正在加密web.config的节。我应该吗?

  •  1
  • Tim Scarborough  · 技术社区  · 16 年前

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

    我应该加密web.config的app设置和连接字符串部分吗?我并没有经常看到这一点,我想知道这是否是一个过度杀戮或不是一个最佳实践。我在连接字符串中有密码,在应用程序设置中有用于查询广告的服务帐户的帐户信息。

    顺便说一句:我会用

     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 回复  |  直到 16 年前
        1
  •  3
  •   Richard    16 年前

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

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

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

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

        2
  •  1
  •   Moshe    16 年前

    我做了类似的事情来加密web.config文件,我并不后悔。维护它并不复杂,它还增加了另一层防御。因为安全性是内置的,所以这样做没有什么错。