我正在使用不是為個人網站托管的 asp net core 的 blazor web 程式集應用程式。該網站與 Contentful CMS 集成,需要 api 密鑰、預覽密鑰和空間 id。我目前將這些存盤在我自己的 www/root 中的 appsettings.json 中,并通過將 IConfiguration 注入我的服務來訪問它們,然后通過 GetSection 方法訪問這些值。
它們采用以下形式:
"DeliveryApiKey": "A",
"ManagementApiKey": "not used",
"PreviewApiKey": "B",
"SpaceId": "C",```
這對于在本地運行它很好,但是經過一些在線研究后,如果部署這些密鑰并且對 dll 進行反編譯,這些密鑰對用戶來說是可讀和可見的。
使用 blazor Web 程式集應用程式存盤 api 密鑰的最佳方法是什么?我想知道是否應該創建一個 asp net core 托管的 blazor 專案,該專案將為我提供一個服務器和共享專案,但如果我要部署它,我不確定這是否適用于 github 操作和 netlify 如果我要單獨部署我專案的“服務器”端。最好的行動方案是什么?
*編輯,這就是我使用這些密鑰訪問內容 CDA 的方式。這是基于檔案的方式。
{
var apiKey = _configuration.GetSection("ContentfulOptions").GetSection("DeliveryApiKey").Value;
var previewKey = _configuration.GetSection("ContentfulOptions").GetSection("PreviewApiKey").Value;
var spaceid = _configuration.GetSection("ContentfulOptions").GetSection("SpaceId").Value;
var httpClient = new HttpClient();
var client = new ContentfulClient(httpClient, apiKey, previewKey, spaceid);
return client;
}
uj5u.com熱心網友回復:
通常,如果客戶端(Web 瀏覽器、桌面應用程式等)上有任何秘密(API 密鑰、密碼等)可用,無論介質是什么 - 包括 Blazor WASM - 在此類秘密之前只是持久性問題妥協。加密沒有什么幫助,因為您仍然需要在客戶端的某個時間點使用實際的明文版本,以便于訪問。
我強烈建議將任何敏感資訊保留在服務器端。對于 Blazor WASM 應用程式,這意味著可以從客戶端訪問輔助 Web API 等(是的,這仍然是一個安全風險,但更典型的一個 - 安全 API 是一個已解決的問題,例如 Identity Framework ,以及類似的技術)。
我仍然建議對任何真正敏感的事情使用 Key Vault 服務,即使是服務器端訪問(無論如何,這都是 Key Vault 的主要用例)——這比在本地存盤密鑰、嵌入在應用程式中要好得多,致力于 GitHub 等。
看看這個視頻(我保證我不會從 Azure 銷售中獲得傭金,我真的認為這是一個很好的解決方案)。該視頻展示了一個 Blazor Server 應用程式,但該技術很容易適應呼叫 Web API 的 Blazor WASM 應用程式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430771.html
標籤:C# 。网 西装外套 blazor-webassembly
上一篇:通過Linq上的摘要加入表組
