保护 web.config 设置

use*_*169 5 c# asp.net asp.net-mvc

我们正在开发 ASP.NET MVC 5 应用程序。我们聘请了一些远程开发人员来帮助我们完成该项目。

web.config 文件包含我们不想与这些远程开发人员共享的连接字符串和应用程序设置。为了开发我们的应用程序,这些开发人员远程访问我们控制的开发桌面。

保护 web.config 中敏感信息的最佳实践是什么,以便开发人员仍然可以运行和调试应用程序,但不能读取 web.config 中的敏感信息?

Nig*_*888 5

web.config在开发环境中加密是没有意义的。真正向开发人员隐藏信息的唯一方法就是一开始就不将信息提供给他们。

  1. 您必须确保您的“远程开发环境”仅设置为访问开发数据库,​​并且仅配置了其他开发设置。
  2. 不要将任何敏感数据(生产密码等)签入源代码管理中。您可以通过将信息分离到外部.config文件中来实现此目的,这样它们就不会被签入源代码管理中。提示:忽略具有 实际密码的文件,并添加另一个具有相同名称和扩展名的文件,例如.config.example签入的扩展名,以向开发人员提供有关如何在本地系统上设置该文件的说明(无论是谁,这都是一个有用的提醒)从源代码控制存储库的克隆设置系统)。
  3. 使用持续集成服务器(TeamCity、Jenkins、Octopus Deploy等)通过环境变量将敏感信息构建到发布工作流程中。许多 CI 服务器都能够从 UI 中隐藏敏感数据。您可以通过单击 CI 按钮来练习自动部署,这样您的开发人员就无法访问 CI 服务器中的敏感数据,或者将部署工件交给受信任的团队以在生产中安装。

实际上没有理由让开发人员有机会查看密码和私钥等敏感生产数据。