【问题标题】:How to keep connection string secured in open source? [closed]如何在开源中保持连接字符串的安全? [关闭]
【发布时间】:2020-06-26 17:45:11
【问题描述】:

我有一个 ASP.NET Core 3.1 Web API 项目。我目前的工作环境是 Ubuntu。我正在使用远程数据库。现在的问题是:

  • 我必须将我的项目保存在开源存储库中
  • 我必须使用远程连接的数据库,这样我的队友才能直接从 已部署的站点 (heroku/azure) 访问移动环境中的 API

但在这种情况下,我想这不是标准的,最重要的是不安全。那么,我如何确保在开源存储库中保护我的远程数据库的连接字符串?

【问题讨论】:

  • 完全不公开机密信息。看看 UserSecrets(是的,它来自 MS)

标签: asp.net asp.net-mvc asp.net-core asp.net-core-webapi


【解决方案1】:

您可以使用“UserSecretManager”将连接字符串放入“secrets.json”而不是“appsetting.json”。 “secrets.json”保留在您的本地计算机上,并且位于 git 存储库文件夹之外。

【讨论】:

  • 也就是说,我必须把它放在 .gitignore 中?但是,Azure 怎么会知道这些秘密呢?
  • @ShunjidRahman 不,“.gitignore”包含 git 存储库中的文件和文件夹,但您想忽略它们。但是使用“UserSecret”,您将秘密放在存储库文件夹之外。因此,您应该为其设置路径。看看这个:nvisium.com/blog/2019/05/02/…
  • secrets.json 文件最终位于您的文档文件夹中的某个位置。如果您右键单击项目以管理用户机密,然后单击项目文件查看它,您将看到顶部有一个名为“Secrets”的部分,旁边有一个大的 GUID。此 GUID 是您的 secrets.json 文件的文件夹名称。如果您在解决方案中有多个项目但想要保留相同的机密文件,则将该 GUID 添加到您的其他项目中,它们都将指向相同的。这个秘密文件离你的源代码很远,永远不会被提交
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多