<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何在 Asp.Net Core 中 管理敏感數(shù)據(jù)

          共 3013字,需瀏覽 7分鐘

           ·

          2020-12-12 22:25

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

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

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

          在項目中添加 user secrets

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

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

          • 右鍵點擊選擇 Manage User Secrets

          然后 Visual Studio 2019 會自動打開一個 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!"
          ????}
          ??}
          }


          對了, 默認的 secret.json 文件路徑如下:


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

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


          "Microsoft.NET.Sdk.Web">
          ??
          ????netcoreapp3.1
          ????e4f51d14-ddc1-48f4-bb34-84c114e3d6d0
          ??



          使用 Secret Manager tool 管理工具

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

          生成 user secrets

          在 cmd 窗口輸入如下命令:


          dotnet?user-secrets?init

          新增 user secrets 內容

          要想看到當前所有的 secrets,輸入以下命令。


          dotnet?user-secrets?list

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

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


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

          訪問 secret

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


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

          因為需要用 Configuration Api 去訪問,這里我準備用依賴注入的方式來實現(xiàn) configuration 的注入,代碼如下:


          ????public?class?HomeController?:?Controller
          ????{
          ????????private?readonly?ILogger?_logger;
          ????????private?readonly?IConfiguration?_config;
          ????????public?HomeController(ILogger?logger,
          ??????????????????????????????IConfiguration?config
          )

          ????????{
          ????????????_logger?=?logger;
          ????????????_config?=?config;
          ????????}
          ????????//Action?methods?go?here?-?this?is?done?for?brevity
          ????}

          刪除 secret

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


          dotnet?user-secrets?remove?"AuthorApiKey"

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


          dotnet?user-secrets?clear

          如果你想移除某一個層級中的子層key,可以使用 : 運算符,代碼如下:


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

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

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

          回復?【小程序】獲取15套小程序源碼【學習+實戰(zhàn)+賺錢
          回復?【關閉】學關閉微信朋友圈廣告
          回復?【實戰(zhàn)】獲取20套實戰(zhàn)源碼
          回復?【福利】獲取最新微信支付有獎勵
          回復?【被刪】學查看你哪個好友刪除了你巧
          回復?【訪客】學微信查看朋友圈訪客記錄
          回復?【python】學微獲取全套0基礎Python知識手冊

          【附申請地址】阿里云網(wǎng)盤,內測資格,開放申請了!非會員下載 10MB/s!有圖有真相!


          臥槽:第一次見這么牛x的網(wǎng)站?


          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  狼人在线综合 | 国产操熟女 | 国产亲子乱A片免费视频 | 大香蕉网伊人 | 美女曹逼网站 |