[英]Securing web.config settings
我们正在开发一个 ASP.NET MVC 5 应用程序。 我们聘请了一些远程开发人员来帮助我们完成该项目。
web.config 文件包含我们不想与这些远程开发人员共享的连接字符串和应用程序设置。 为了处理我们的应用程序,这些开发人员远程进入我们控制的开发桌面。
在 web.config 中保护敏感信息的最佳实践是什么,以便开发人员仍然可以运行和调试应用程序,但不能读取 web.config 中的敏感信息?
在开发环境中加密web.config
毫无意义。 真正向开发人员隐藏信息的唯一方法是首先不要将其提供给他们。
.config
文件中来实现这一点,这样它们就不会被签入源代码管理。 提示: 忽略带有实际密码的文件并添加另一个具有相同名称和扩展名的文件,例如.config.example
已签入以向开发人员提供有关如何在其本地系统上设置文件的说明(这很有帮助)提醒无论是谁从源控制存储库的克隆设置系统)。真的没有理由让开发人员有机会查看敏感的生产数据,例如密码和私钥。
就像Ingenioushax
建议的那样,加密 web.config 部分的标准方法是使用 aspnet_regiis。 这是一个教程。
你如何部署你的应用程序?
如果您使用Octopus Deploy 之类的工具 - 只有您的陆上团队可以访问 - 您可以使用它来存储任何敏感设置。 这些将在部署期间插入到您的配置文件中。
在 Octopus Deploy 中,这些被称为配置变量。
这假定敏感的设置是比那些开发者会使用他们自己(生产和UAT,例如)其他环境。
您可以将配置变量存储在环境变量中,并在运行时将它们读入应用程序 - 这更好,因为每个开发人员和环境都可以拥有自己的配置,这些配置永远不会与其他人发生冲突。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.