日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

如何在 Asp.Net Core 中 管理敏感数据

發(fā)布時(shí)間:2023/12/4 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何在 Asp.Net Core 中 管理敏感数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

譯文鏈接:https://www.infoworld.com/article/3576292/how-to-work-with-user-secrets-in-asp-net-core.html

在應(yīng)用程序開發(fā)時(shí),你肯定會(huì)有一些特別需要保護(hù)的數(shù)據(jù),這些數(shù)據(jù)通常是非常機(jī)密的,敏感的,禁止和別人共享,這些信息包括:數(shù)據(jù)庫連接串,你懂的,畢竟里面有 userid 和 password,還有 OAuth 驗(yàn)證用到的 accesskey,apikey 或者配置 azure,aws 等云服務(wù)的連接信息。

當(dāng)項(xiàng)目和別人共享的時(shí)候,這些敏感信息自然也暴露給了別人,這通常是我不想看到的結(jié)果,那怎么去預(yù)防呢?ASP.NET Core 中有一個(gè)叫做 User Secrets 特性,它允許將用戶敏感信息存儲(chǔ)在項(xiàng)目外的一個(gè) json 文件中,那怎么去管理這個(gè) json 文件呢?你可以通過 命令行工具 Secrets Manager 去進(jìn)行敏感信息的管理,這篇文章主要就是來聊一聊怎么去管理這個(gè) User Secrets。

在項(xiàng)目中添加 user secrets

可以很方便的將 user secrets 添加到你的項(xiàng)目中,你需要做的僅僅是。

  • 在解決方案管理器上選擇 project

  • 右鍵點(diǎn)擊選擇 Manage User Secrets。

然后 Visual Studio 2019 會(huì)自動(dòng)打開一個(gè) secrets.json 文件。

接下來在 secrets.json 中添加一些敏感數(shù)據(jù)。

{"ConnectionString":?"This?is?a?test?connection?string","APIKey":?"This?is?s?secret?key","AppSettings":?{"GlobalSettings":?{"GlobalAccessKey":?"This?is?a?global?access?key!"}} }

對(duì)了, 默認(rèn)的 secret.json 文件路徑如下:

C:\Users\38034\AppData\Roaming\Microsoft\UserSecrets\b87644d3-6898-47e4-8580-b3de15f22b96

把項(xiàng)目編譯一下,然后打開 project 的meta文件 .csproj,你會(huì)發(fā)現(xiàn)新增了一個(gè) UserSecretsId 節(jié)點(diǎn),代碼如下:

<Project?Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>netcoreapp3.1</TargetFramework><UserSecretsId>e4f51d14-ddc1-48f4-bb34-84c114e3d6d0</UserSecretsId></PropertyGroup> </Project>

使用 Secret Manager tool 管理工具

這個(gè) Secret Manager tool 是 .NET Core 中的一個(gè)命令行管理工具,主要用來管理 Configuration 和 敏感數(shù)據(jù),在這一節(jié)中我們一起看看怎么使用這個(gè)小工具。

生成 user secrets

在 cmd 窗口輸入如下命令:

dotnet?user-secrets?init

新增 user secrets 內(nèi)容

要想看到當(dāng)前所有的 secrets,輸入以下命令。

dotnet?user-secrets?list

下圖展示了我之前創(chuàng)建的一些 key。

接下來用 set 命令設(shè)置一條敏感數(shù)據(jù)。

dotnet?user-secrets?set?"AuthorApiKey"?"xyz1@3"

訪問 secret

為了能夠?qū)崿F(xiàn)用代碼去訪問,可以用 ASP.NET Core 里的 Configuration Api,HomeController 的代碼如下:

public?class?HomeController?:?Controller{private?readonly?ILogger<HomeController>?_logger;public?HomeController(ILogger<HomeController>?logger){_logger?=?logger;}//Action?methods?go?here?-?this?is?done?for?brevity}

因?yàn)樾枰?Configuration Api 去訪問,這里我準(zhǔn)備用依賴注入的方式來實(shí)現(xiàn) configuration 的注入,代碼如下:

public?class?HomeController?:?Controller{private?readonly?ILogger<HomeController>?_logger;private?readonly?IConfiguration?_config;public?HomeController(ILogger<HomeController>?logger,IConfiguration?config){_logger?=?logger;_config?=?config;}//Action?methods?go?here?-?this?is?done?for?brevity}

刪除 secret

要想刪除這個(gè) key,可以使用下面的命令。

dotnet?user-secrets?remove?"AuthorApiKey"

如果你想移除所有的key,可以使用下面的命令。

dotnet?user-secrets?clear

如果你想移除某一個(gè)層級(jí)中的子層key,可以使用 : 運(yùn)算符,代碼如下:

dotnet?user-secrets?remove?"AppSettings:GlobalSettings"

ASP.NET Core 重定義了對(duì) Configuration 中的數(shù)據(jù)配置,管理和保護(hù),而且還有這個(gè)非常 ????????的 ?User Secrets,可以很好的替代以前用環(huán)境變量的方式,而且可以確保源碼中不再有任何敏感數(shù)據(jù),畢竟 User Secrets 是存儲(chǔ)在項(xiàng)目之外的一個(gè)文件夾下,這個(gè)路徑之前也給大家看到了,是 windows 的一個(gè) 用戶文件夾。

不過這里有一個(gè)缺點(diǎn),存儲(chǔ)在 User Secrets 中的數(shù)據(jù)是以明文形式存在的,不用怕,后面的文章我會(huì)討論一些其他的方法來保護(hù)用戶敏感數(shù)據(jù),比如說:Azure application settings 和 ?Azure key vault。

總結(jié)

以上是生活随笔為你收集整理的如何在 Asp.Net Core 中 管理敏感数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。