IOptions 及其安全性 ASP NET Core



在应用程序启动时,我必须提供对称密钥,这将在控制器中使用。我听说单例模式对于保密来说不够安全,所以我想知道IOptionsMicrosoft.Extensions.Options的区别。IOptions模式安全吗?或者可能有更好的替代方案?目前,它看起来像这样:

Startup.cs

services.Configure<EncryptingOptions>(cfg =>
{
cfg.SymmetricKey = symmetricKey;
});

。控制器:

private readonly EncryptingOptions _encryptingOptions;

public SomeController(IOptions<EncryptingOptions> encryptingOptions)
{
_encryptingOptions = encryptingOptions.Value;
}

机密的安全性与设计模式无关。

你绝对可以使用选项模式作为你的密钥,我建议你使用它,看看这篇来自Microsoft Learn的文章:

https://learn.microsoft.com/en-us/dotnet/core/extensions/options

你应该保证你的服务器和你的软件工件的安全,但有时我们需要允许其他人在我们的服务器上做一些事情(不要这样做!),所以在这些情况下,我们可以加密我们的配置,看看这篇关于app-secret的文章,这在你的情况下是有用的:

https://learn.microsoft.com/en - us/aspnet/core/security/app secrets?view=aspnetcore - 6.0,标签= windows

它使用环境变量。但是,您只是使访问这些信息变得更加困难,而不是完全安全,因为如果有人访问您的服务器,他/她可以看到任何东西!

老实说,你应该把你的文件和设置放在一个安全的地方。

最新更新