为什么不应该将密码保存在ASP.NET Core中的appsettings.json中?

问题描述 投票:2回答:1

official documentation lists appsettings.json的以下做法:

  • 切勿将密码或其他敏感数据存储在配置提供程序代码或纯文本配置文件中。
  • 不要在开发或测试环境中使用生产秘密。
  • 在项目外部指定机密,这样就不会将它们意外地提交到源代码存储库。

据我所知,当您在IIS上托管应用程序时,不会提供appsettings.json,因此无法从Web上进行访问。我们也自己托管源代码(即在我们自己的服务器上)。据我所知,唯一真正的危险是有人设法破坏整个系统并实际访问appsettings.json本身。

但是还有其他原因将敏感数据保留在appsettings.json之外吗?我还有其他安全方面要忽略的问题吗?

我知道有几个问题要问如何来确保appsettings.json的安全,但没有真正的风险。

security asp.net-core .net-core asp.net-core-3.1
1个回答
2
投票

有很多原因,但是您已经提到的主要原因:

  • 通常,获得源代码要比获得受保护的机密(例如,Azure Vault)容易得多,>
  • 更容易泄露这些机密,可能是偶然地(通过日志,或者是有人抬头,或者是可以访问CI服务器的人)] >>
  • 您通常不会知道
  • 泄漏了它们,因为通常没有比使用适当的机密系统进行审计的审计,或者与之相比,审计工作少很多)
  • 没有办法限制可以在特定环境中访问特定秘密的人
  • 个人,我也不喜欢在我的开发设置附近有专门的production秘密。如果我以开发人员身份运行代码,则希望100%确保不会在生产环境中意外运行(“糟糕,我测试了批量删除功能...与生产”)。如果产品秘密是[[just not there
  • ,那么就没错了可能还有更多原因...
  • 基本上,限制错误和安全漏洞的表面积将限制发生问题的机会,即使没有[[当前
  • 可能发生错误或漏洞的因素的合理组合。
© www.soinside.com 2019 - 2024. All rights reserved.