Safe storage of app secrets during development

在开发过程中安全存储应用秘密。

本文档展示了如何在开发中使用秘密管理工具,从而将秘密隐藏在代码中.
最重要的一点是,不要将密码或其他敏感数据存储在源代码中。你不应该在开发和测试模式中使用生存秘密。您可以使用配置系统从环境变量中读取这些值,或者从密码管理器工具存储的值中读取这些值,秘密管理工具帮助防止敏感数据被检入到源代码控制中,配置系统可以读取存储在本文中描述的秘密管理器工具的秘密。

秘密管理工具只在开发中使用,您可以使用Microsoft Azure密钥保险库配置提供程序来保护Azure测试和生产机密。有关更多信息,请参阅Azure密钥库配置提供程序。Azure Key Vault configuration provider

Environment variables(环境变量)
为了避免在代码或本地配置文件中存储应用程序的秘密,你应该在环境变量中存储秘密。您可以通过调用 ''AddEnvironmentVariables''变量来设置配置框架来读取环境变量的值。然后,您可以使用环境变量来覆盖所有先前指定的配置源的配置值。

例如,如果你创建了一个新的ASP.NET Core web app有单个用户账户,将添加默认的连接字符串到appsettings.json带有DefaultConnection key,默认的连接字符串设置为视图LocalDB,它在用户模式下运行,不需要密码,当您将应用程序部署到测试或生产服务器时,您可以使用一个环境变量设置来覆盖DefaultConnection 的值,该环境变量设置包含一个测试或生产数据库服务器的连接字符串(可能带有敏感的凭证。)

Warning
环境变量一般存储在纯文本中,不加密,如果机器或进程被破坏,则环境变量可以由不受信任的访问。可能还需要采取其他措施来防止泄露用户机密。

Secret Manager
秘密管理工具在项目树之外存储用于开发工作的敏感数据,秘密管理工具是一种可以用来存储秘密的项目工具,在开发过程中的.NET CORE项目,使用秘密管理工具,你可以将应用秘密与一个特定的项目联系起来,并在多个项目中共享它们。

Warning
秘密管理器工具不加密存储的秘密,不应该被当做一个受信任的存储,它只用于开发目的,键和值存储在用户配置文件目录中的JSON配置文件中。

你可能感兴趣的:(Safe storage of app secrets during development)