首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全存储Blazor Webassembly应用程序的应用程序机密

安全存储Blazor Webassembly应用程序的应用程序机密
EN

Stack Overflow用户
提问于 2020-07-02 23:35:30
回答 2查看 1.6K关注 0票数 4

我正在寻找安全存储在blazor webassembly应用程序中的应用程序秘密的方法。我们可以在下面的MSDN文档中找到服务器端应用程序的详细信息。

https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows

我们如何将这些秘密用于Blazor WebAssembly应用程序,它完全运行在客户端浏览器中?

我的基本场景是,需要将密码、产品密钥(许可密钥)信息保留在应用程序代码之外。例如,我们在Program.cs的静态main方法中加载许可。

https://i.stack.imgur.com/kCrV1.png

代码语言:javascript
复制
 public class Program
    {
        public static async Task Main(string[] args)
        {
            //want to access the product key here and need to avoid hardcoding
            SomeThirdPartyLibrary.RegisterLicense("product-key");
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("app");

            builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

            await builder.Build().RunAsync();
        }

我已经搜索了blazor的文档,但没有找到这方面的任何细节。请帮助我找到在Blazor webassembly中解决这个问题的推荐方法。

(对于服务器端,我们有多种选择,但对于客户端,推荐的方式是什么)

EN

回答 2

Stack Overflow用户

发布于 2020-07-03 00:44:49

如果你把它存储在客户端,它是不安全的。

有一个实验性的MS nuget包,声称可以通过加密来确保存储安全-- Microsoft.AspNetCore.ProtectedBrowserStorage

您可以在这里阅读如何使用它https://docs.microsoft.com/en-us/aspnet/core/blazor/state-management?view=aspnetcore-3.1

票数 0
EN

Stack Overflow用户

发布于 2020-08-05 15:53:48

可以通过使用MemoryConfigurationSource来使用内存配置

示例:

代码语言:javascript
复制
var appsettings = new Dictionary<string, string>()
{
   { "API:Key", "12345" }
};
var config = new MemoryConfigurationSource(InitialData = appsettings);
builder.Configuration.Add(memoryConfig);

然后,无论您想使用它,只需@inject configuration (在剃刀页面中)或在您的类程序中如下所示:

代码语言:javascript
复制
builder.Configuration.GetValue<string>("API:Key")
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62700005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档