【发布时间】:2021-02-28 02:52:04
【问题描述】:
有时在 .NET Core 中存在需要多个 DbContext 的情况(并行数据库请求等)。
在我的 DbContext 类中使用这两种解决方案中的任何一种是否安全?
private static string _connectionString;
private static string ConnectionString =>
_connectionString ??= new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build().GetConnectionString("CoreConnection");
public static CoreContext GetContext()
{
var options = new DbContextOptionsBuilder<CoreContext>()
.UseNpgsql(ConnectionString)
.Options;
return new CoreContext(options);
}
或
private static IConfiguration _configuration;
private static IConfiguration Configuration =>
_configuration ??= new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
private static string ConnectionString =>
Configuration.GetConnectionString("CoreConnection");
public static CoreContext GetContext()
{
var options = new DbContextOptionsBuilder<CoreContext>()
.UseNpgsql(ConnectionString)
.Options;
return new CoreContext(options);
}
我已经阅读(对于旧的 ASP .NET),您应该避免将敏感数据(例如密码和包含密码的连接字符串)以纯文本形式保存在应用程序内存中,因为内存可能在崩溃后被黑客入侵或转储/保存。
.NET Core 仍然如此吗? (应该是这样)
使用IConfiguration 是否更安全,或者它是否也将连接字符串以纯文本形式存储在内存中?
net core中可与DI一起使用的全局IConfiguration是否将所有appsettings.json文件数据存储在内存中?
内存被黑客入侵的可能性更大,那么黑客可能能够直接读取appsettings.json 信息吗?
【问题讨论】:
标签: c# security .net-core entity-framework-core