如何保护。net核心项目的敏感信息

介绍

今天就跟大家聊聊有关如何保护。net核心项目的敏感信息,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

我们的项目中几乎都会有配置文件,里面可能会存储一些敏感信息,比如数据库连接字符串,第三方API的AppKey和SecretKey等。

对于开源项目,这些敏感信息肯定不能随着源代码一起提交到托管平台。

对于网站应用大多都是要部署到有公开IP的服务器上的,存有敏感信息的文件放在Web目录下也不安全。

较好的办法是把敏感信息文件存在项目以外的地方。

在。网络核心中,我们可以使用秘密经理工具来管理敏感信息,这个工具可以将敏感信息保存在一个秘密。json文件中,它不在项目文件夹下,而是存放在另外的地方。对于三种操作系统,它的位置是:

 <代码>窗口:% APPDATA %/微软/UserSecrets/& lt; UserSecretsId>/秘密。Linux, json 
: ~/.microsoft/usersecrets/& lt; UserSecretsId>/秘密。json
Mac,,:~/.microsoft/usersecrets/& lt; UserSecretsId>/secrets.json

一个。网络核心应用对应一个唯一的UserSecretsId,一般是一个GUID。

这也限制了每个开发者都必须有自己的UserSecrets文件夹。虽然有些麻烦,但这也有个好处。就是每个开发者可以使用不同于其它开发者的敏感数据进行开发。比如有些公司的数据库为每个开发者创建了独立的数据库访问账号。

在大战中可以很方便地操作的秘密。json。右击项目,选择(管理用户机密),如图:

如何保护。net核心项目的敏感信息

编辑打开的秘密。json文件,把敏感信息填入其中,如:

 <代码> {
,“ConnectionString":“服务器=localhost;; testdb数据库=uid=根;pwd=123456;“
}

保存后,。csproj文件中会自动生成一个UserSecretsId:

如何保护。net核心项目的敏感信息

如果不用VS,也可以在此处手动添加UserSecretsId,然后在项目目录下通过命令来添加或删除配置项,例如:

 <代码> dotnet user-secrets设置“Foo: ApiKey"“123456“
dotnet user-secrets删除“Foo: ApiKey"

如果secrets.json和appsettings.json有相同的配置项,程序会优先读取前者的值。

对于secrets.json的所有配置项,最好也在appsettings。json保留相应的占位,比如:

 <代码> {
,“ConnectionString":“& lt;你的连接字符串here>“,

,//其它配置
}

这样appsettings。json中的占位可以告诉其它开发者有这样一个配置。这对于开源项目十分有用。

享。

看完上述内容,你们对如何保护。net核心项目的敏感信息有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

如何保护。net核心项目的敏感信息