我们正在开发一个ASP.NET MVC 5应用程序。我们聘请了一些远程开发人员帮助我们完成该项目。
web.config文件包含我们不想与这些远程开发人员共享的连接字符串和应用程序设置。为了处理我们的应用程序,这些开发人员远程进入我们控制的开发桌面。
在web.config中保护敏感信息的最佳做法是什么,这样开发人员仍然可以运行和调试应用程序但不能读取web.config中的敏感信息?
答案 0 :(得分:3)
在开发环境中加密web.config
毫无意义。真正隐藏开发人员信息的唯一方法就是不要首先将它们提供给他们。
.config
files来实现此目的,这样就不会将它们检入源代码管理中。 提示 Ignore the file with the actual passwords并添加另一个具有相同名称的扩展程序,例如 签入的.config.example
,以便向开发人员提供有关如何在本地系统上设置文件(无论谁从源控件存储库的克隆设置系统),这都是一个有用的提醒。确实没有理由让开发人员有机会看到敏感的生产数据,如密码和私钥。
答案 1 :(得分:2)
与Ingenioushax
建议类似,加密web.config部分的标准方法是使用aspnet_regiis。 Here is a tutorial
答案 2 :(得分:1)
您如何部署应用程序?
如果您使用Octopus Deploy之类的工具 - 只有您的境内团队有权访问 - 您可以使用它来存储任何敏感设置。这些将在部署期间插入到配置文件中。
在Octopus Deploy中,这些被称为configuration variables。
这假定敏感设置适用于其他环境,而不是开发人员自己使用的环境(例如,生产和UAT)。
答案 3 :(得分:0)
您可以将配置变量存储在环境变量中并在运行时将它们读入应用程序 - 这样做更好,因为每个开发人员和环境都可以拥有自己的配置,永远不会与其他配置冲突。