国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

這篇具有很好參考價(jià)值的文章主要介紹了安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

在我們開發(fā)過程中基本上不可或缺的用到一些敏感機(jī)密數(shù)據(jù),比如SQL服務(wù)器的連接串或者是OAuth2Secret等,這些敏感數(shù)據(jù)在代碼中是不太安全的,我們不應(yīng)該在源代碼中存儲(chǔ)密碼和其他的敏感數(shù)據(jù),一種推薦的方式是通過Asp.Net Core機(jī)密管理器。

機(jī)密管理器

ASP.NET Core 中,機(jī)密管理器通常指的是一種工具或機(jī)制,用于安全地存儲(chǔ)和管理應(yīng)用程序中的敏感數(shù)據(jù),如數(shù)據(jù)庫連接字符串、API 密鑰、密碼等。這樣的工具可以幫助開發(fā)人員有效地管理敏感信息,避免將其硬編碼在代碼中或與源代碼一同提交到版本控制系統(tǒng)中,從而提高數(shù)據(jù)安全性和保密性。

通過上面我們可以得知,應(yīng)用機(jī)密存儲(chǔ)和項(xiàng)目數(shù)在不同的位置,也就是說不被 git 等源代碼管理器所管理,所以不會(huì)隨源代碼遷入到遠(yuǎn)程服務(wù)器。

為什么要使用機(jī)密管理器:

  • 安全性:通過使用機(jī)密管理器,可以將敏感數(shù)據(jù)存儲(chǔ)在安全的位置,避免在代碼中明文存儲(chǔ)密碼等敏感信息,從而減少數(shù)據(jù)泄露的風(fēng)險(xiǎn)。

  • 便捷性:機(jī)密管理器提供了方便的方式來存儲(chǔ)和訪問敏感數(shù)據(jù),使開發(fā)人員能夠輕松地在開發(fā)過程中使用這些數(shù)據(jù),而無需擔(dān)心泄露或不當(dāng)處理。

  • 靈活性:通過機(jī)密管理器,可以輕松地在不同環(huán)境中管理不同的敏感數(shù)據(jù),如開發(fā)、測試和生產(chǎn)環(huán)境,同時(shí)確保每個(gè)環(huán)境中的數(shù)據(jù)安全性。

  • 遵循最佳實(shí)踐:使用機(jī)密管理器有助于遵循最佳實(shí)踐,如將敏感數(shù)據(jù)與應(yīng)用程序代碼分離、避免硬編碼密碼等敏感信息,提高應(yīng)用程序的安全性和可維護(hù)性。

如何啟用機(jī)密存儲(chǔ)

有兩種方案第一種是使用CLI第二種是使用Visual Studio

我們創(chuàng)建一個(gè)新的WebApi 項(xiàng)目dotNetParadise.UserSecret

使用CLI

機(jī)密管理器工具包含一個(gè) init 命令 用來啟用機(jī)密存儲(chǔ),在項(xiàng)目所在的目錄,在我的示例中就是Api項(xiàng)目dotNetParadise.UserSecret的所在目錄執(zhí)行一下命令:

dotnet user-secrets init

安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

通過輸出我們可以看到在我們項(xiàng)目的CSPROJ文件生成了一個(gè)UserSecretsId 元素添加到項(xiàng)目文件的 PropertyGroup 中,內(nèi)部文本是任意的,但對于項(xiàng)目來說是唯一的。

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <UserSecretsId>c3cda712-dc63-439b-b6af-9c4d6060fde2</UserSecretsId>
  </PropertyGroup>

設(shè)置機(jī)密

使用 dotnet user-secrets set 命令來存儲(chǔ)機(jī)密數(shù)據(jù)。

在項(xiàng)目文件夾目錄中執(zhí)行此命令

dotnet user-secrets set "Movies:ServiceApiKey" "12345"

在這個(gè)示例中,使用 dotnet user-secrets set 命令設(shè)置了一個(gè)名為 "Movies:ServiceApiKey" 的應(yīng)用機(jī)密,其值為 "12345"。冒號(hào)表示 "Movies" 是具有 "ServiceApiKey" 屬性的對象文字。

我們設(shè)置好的機(jī)密數(shù)據(jù)存到了哪里?

Windows系統(tǒng)中

%APPDATA%\Microsoft\UserSecrets\<user_secrets_id>\secrets.json

比如我剛才添加的就在機(jī)密存儲(chǔ)位置:

%APPDATA%\Microsoft\UserSecrets\c3cda712-dc63-439b-b6af-9c4d6060fde2\secrets.json

安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

看一下里面的內(nèi)容

{
  "Movies:ServiceApiKey": "12345"
}

也可以通過單擊該項(xiàng)目(項(xiàng)目名稱),然后從上下文菜單中選擇“管理用戶機(jī)密”設(shè)置,在VS編輯器查看secrets.json機(jī)密數(shù)據(jù)。

--project 屬性

除了在項(xiàng)目文件目錄中執(zhí)行dotnet user-secrets set命令設(shè)置機(jī)密之外,還可以在通過 --project 選項(xiàng)用于指定項(xiàng)目文件所在的文件系統(tǒng)路徑,以便在其他目錄中使用User Secrets機(jī)密管理器工具,這種用法允許從任意目錄設(shè)置應(yīng)用機(jī)密,而不僅限于項(xiàng)目文件所在的當(dāng)前目錄

dotnet user-secrets set "Movies:ServiceApiKey" "12345" --project "C:\apps\WebApp1\src\WebApp1"

機(jī)密管理器工具不會(huì)加密存儲(chǔ)的機(jī)密,不得被視為受信任的存儲(chǔ),它僅用于開發(fā),密鑰和值存儲(chǔ)在用戶配置文件目錄中的 JSON 配置文件中。

使用Visual Studio

當(dāng)在 Visual Studio 中進(jìn)行敏感數(shù)據(jù)管理時(shí),可以按照以下步驟操作:

  • 在解決方案資源管理器中右鍵 單擊該項(xiàng)目(項(xiàng)目名稱),然后從上下文菜單中選擇“管理用戶機(jī)密”

  • Visual Studio 將自動(dòng)為該項(xiàng)目添加一個(gè) UserSecretsId 元素,其中填充有一個(gè)唯一的 GUID。

安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

設(shè)置完之后在 VS 的編輯界面就會(huì)打開一個(gè)secrets.json文件

{}

這里面是一個(gè)空的 json 串,可以手動(dòng)設(shè)置機(jī)密鍵值對象,也可以通過dotnet user-secrets set來設(shè)置機(jī)密數(shù)據(jù)

批量設(shè)置機(jī)密

可以通過一個(gè)json文件來批量設(shè)置機(jī)密

type .\input.json | dotnet user-secrets set

讀取機(jī)密

Asp.Net Core 中我們在項(xiàng)目中讀取配置如appSetting.json或者環(huán)境變量的參數(shù)都是通過IConfiguration對象來操作,機(jī)密的讀取和Asp.Net Core的配置都是一樣的我們來實(shí)戰(zhàn)一下

var apiKey = builder.Configuration["Movies:ServiceApiKey"];
Console.WriteLine(apiKey);

安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

可以看到機(jī)密信息已經(jīng)正常讀到。

配置的優(yōu)先級

那么如果 user-secretsappSetting.json或者還有其他的配置源設(shè)置相同的數(shù)據(jù),那個(gè)優(yōu)先級高呢?

根據(jù)Asp.Net Core 配置介紹

WebApplication.CreateBuilder 使用預(yù)配置的默認(rèn)值初始化 WebApplicationBuilder 類的新實(shí)例。 經(jīng)過初始化的 WebApplicationBuilder (builder) 按照以下順序?yàn)閼?yīng)用提供默認(rèn)配置(從最高優(yōu)先級到最低優(yōu)先級):

  • 使用命令行配置提供程序通過命令行參數(shù)提供。
  • 使用非前綴環(huán)境變量配置提供程序通過非前綴環(huán)境變量提供。
  • 應(yīng)用在 Development 環(huán)境中運(yùn)行時(shí)的用戶機(jī)密。
  • 使用 JSON 配置提供程序通過 appsettings.{Environment}.json 提供。 例如,appsettings.Production.jsonappsettings.Development.json
  • 使用 JSON 配置提供程序通過 appsettings.json 提供。

可以看出如果用戶機(jī)密比默認(rèn)的 appsettings.json 優(yōu)先級要高。

對應(yīng)機(jī)密的綁定成POCO對象和 Asp.Net Core 使用配置一樣可以用IConfiguration提供的各種擴(kuò)展如Get,Bind等來實(shí)現(xiàn),此處不過多介紹

列出機(jī)密

從所在項(xiàng)目目錄中運(yùn)行

dotnet user-secrets list

輸出:

Movies:ServiceApiKey = 12345

刪除單個(gè)機(jī)密

dotnet user-secrets remove Movies:ServiceApiKey

使用 dotnet user-secrets remove 命令來刪除 ASP.NET Core 項(xiàng)目中的單個(gè)機(jī)密。在這個(gè)示例中,執(zhí)行命令 dotnet user-secrets remove Movies:ServiceApiKey 將刪除名為 "Movies:ServiceApiKey" 的機(jī)密信息。

通過這種方式,你可以方便地管理和更新項(xiàng)目中的機(jī)密數(shù)據(jù),確保不再需要的敏感信息不再存儲(chǔ)在用戶機(jī)密存儲(chǔ)中。

刪除所有機(jī)密

dotnet user-secrets clear

dotnet user-secrets clear 用于清除 ASP.NET Core 項(xiàng)目中存儲(chǔ)的所有用戶機(jī)密。執(zhí)行這個(gè)命令將刪除用戶機(jī)密存儲(chǔ)中的所有機(jī)密信息,使存儲(chǔ)中不再包含任何敏感數(shù)據(jù)。

使用 dotnet user-secrets clear 命令是一種快速清除整個(gè)用戶機(jī)密存儲(chǔ)中數(shù)據(jù)的方式,適用于需要重置或清除所有敏感信息的情況。請謹(jǐn)慎使用此命令,確保在執(zhí)行之前備份重要的機(jī)密數(shù)據(jù)。

最后

面向非Web的環(huán)境,可以參考下方官網(wǎng)的實(shí)現(xiàn),本文注重講解了通過user-secrets來管理本地的機(jī)密,線上環(huán)境的機(jī)密配置可以ASP.NET Core 中的 Azure Key Vault 配置提供程序,或者大家如果在k8s的環(huán)境中可以通過Secret或者ConfigMap,亦或是配置中心等方式來讓自己的機(jī)密信息避免在源碼中出現(xiàn)。文章來源地址http://www.zghlxwxcb.cn/news/detail-857502.html

  • 在開發(fā)過程中保護(hù)機(jī)密
    ??歡迎關(guān)注筆者公眾號(hào)一起學(xué)習(xí)交流,獲取更多有用的知識(shí)~
    安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧

到了這里,關(guān)于安全機(jī)密管理:Asp.Net Core中的本地敏感數(shù)據(jù)保護(hù)技巧的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • .NET 8 Preview 7 中的 ASP.NET Core 更新

    .NET 8 Preview 7 中的 ASP.NET Core 更新

    作者:Daniel Roth 排版:Alan Wang .NET 8 Preview 7 現(xiàn)在已經(jīng)發(fā)布,其中包括了對 ASP.NET Core 的許多重要更新。 以下是預(yù)覽版本中新增功能的摘要: 服務(wù)器和中間件 防偽中間件 API 編寫 最小 API 的防偽集成 Native AOT 請求委托生成器支持?jǐn)r截器功能 Full TrimMode 用于啟用修剪功能編譯的

    2024年02月11日
    瀏覽(19)
  • .NET 8 Preview 4 中的 ASP.NET Core 更新

    .NET 8 Preview 4 中的 ASP.NET Core 更新

    作者:Daniel Roth - Principal Program Manager, ASP.NET 翻譯:Alan Wang 排版:Alan Wang .NET 8 Preview 4 現(xiàn)已可用,并包括了許多對 ASP.NET Core 的新改進(jìn)。 以下是本預(yù)覽版本中的新內(nèi)容摘要: Blazor 使用 Blazor 組件進(jìn)行流式渲染 使用 Blazor SSR 處理表單提交 在 Blazor 中路由到命名元素 Webcil 為 Bl

    2024年02月12日
    瀏覽(24)
  • ASP.NET Core 中的 Dependency injection

    依賴注入 (Dependency Injection,簡稱DI)是為了實(shí)現(xiàn) 各個(gè)類之間的依賴 的 控制反轉(zhuǎn) (Inversion of Control,簡稱IoC )。 ASP.NET Core 中的Controller 和 Service 或者其他類都支持依賴注入。 依賴注入術(shù)語中, Service 是一個(gè)為其他對象提供服務(wù)的類 **。 Service 不是一個(gè)Web Service,與Web Serv

    2024年02月11日
    瀏覽(23)
  • ASP.NET Core 中的 Razor Pages

    Razor Pages 是基于頁面的 ASP.NET Core Web App 架構(gòu)。 相比 MVC 模式,Razor Pages的生產(chǎn)效率更快。 Razer Pages 需要兩個(gè)中間件: builder…Services.AddRazorPages 添加 Razor Pages services app.MapRazorPages 添加 Razor Pages endpoints .cshtml 與 .cshtml.cs 在最簡單的頁面中: 看起來與 MVC 的頁面差不多,但特別之

    2024年02月09日
    瀏覽(34)
  • ASP.NET Core 中的 wwwroot 文件夾

    ASP.NET Core 中的 wwwroot 文件夾

    在本文中,我將討論 ASP.NET Core 應(yīng)用程序中的 wwwroot 文件夾。請閱讀我們之前討論過ASP.NET Core 請求處理管道的文章。在本文的最后,您將了解 wwwroot 文件夾及其需求以及如何在 ASP.NET Core 應(yīng)用程序中進(jìn)行配置。 ASP.NET Core 中的 wwwroot 文件夾是什么? 默認(rèn)情況下,ASP.NET Core 應(yīng)用

    2024年02月04日
    瀏覽(27)
  • ASP.NET Core 中的兩種 Web API

    ASP.NET Core 有兩種創(chuàng)建 RESTful Web API 的方式: 基于 Controller,使用完整的基于ControllerBase的基類定義接口endpoints。 基于 Minimal APIs,使用Lambda表達(dá)式定義接口 endpoints。 基于 Controller 的 Web API 可以使用構(gòu)造函數(shù)注入,或者屬性注入,遵循面向?qū)ο竽J健?基于 Minimal APIs 的 Web API 通

    2024年02月09日
    瀏覽(34)
  • 理解ASP.NET Core - 全球化&本地化&多語言(Globalization and Localization)

    注:本文隸屬于《理解ASP.NET Core》系列文章,請查看置頂博客或點(diǎn)擊此處查看全文目錄 在眾多知名品牌的網(wǎng)站中,比如微軟官網(wǎng)、YouTube等,我們經(jīng)??梢砸姷健扒袚Q頁面語言”的功能,我們可以選擇最適合的語言瀏覽頁面內(nèi)容。毫無疑問,為網(wǎng)站提供多種語言,頁面內(nèi)容本

    2024年02月08日
    瀏覽(23)
  • Asp-Net-Core開發(fā)筆記:API版本管理

    Asp-Net-Core開發(fā)筆記:API版本管理

    對于Web API應(yīng)用程序而言,隨著時(shí)間的推移以及需求的增加或改變,API必然會(huì)遇到升級的需求。事實(shí)上,Web API應(yīng)用程序應(yīng)該從創(chuàng)建時(shí)就考慮到API版本的問題。業(yè)務(wù)的調(diào)整、功能的增加、接口的移除與改名、接口參數(shù)變動(dòng)、實(shí)體屬性的添加、刪除和更改等都會(huì)改變API的功能,從

    2024年02月08日
    瀏覽(25)
  • 【ASP.NET Core 基礎(chǔ)知識(shí)】--安全性--防范常見攻擊

    在現(xiàn)實(shí)網(wǎng)絡(luò)中即存在著安全的流量,又存在著不安全的流量在,這些不安全的流量常常會(huì)對我們的網(wǎng)站服務(wù)造成威脅,嚴(yán)重的甚至?xí)孤队脩舻碾[私信息。這篇文章我們通過對常見的網(wǎng)絡(luò)攻擊 跨站腳本攻擊 、 跨站請求偽造(CSRF) 、 SQL注入 、 敏感數(shù)據(jù)泄露 、 身份驗(yàn)證與授權(quán)

    2024年02月20日
    瀏覽(92)
  • ASP.NET Core MVC 從入門到精通之日志管理

    ASP.NET Core MVC 從入門到精通之日志管理

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時(shí)間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月09日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包