c# - C# 保护内存中的字符串
问题描述
我正在更新一个 C# 项目以使其更安全(我对它有非常严格的要求)。其中一项要求是保护内存中的一些数据,以防止“未经授权”访问它。我进行了研究,最终得到了“ProtectedMemory.Protect”。我不是 C# 方面的专家,所以我不确定它是否正确。我如何实现它的简化示例:
public class User
{
public string Name
{
get
{
return Encoding.UTF8.GetString(ProtectedMemory.Unprotect(_name, MemoryProtectionScope.SameLogon));
}
set
{
_name = Encoding.UTF8.GetBytes(value);
ProtectedMemory.Protect(_name, MemoryProtectionScope.SameLogon);
}
}
private byte[] _name;
}
这是有道理的吗?:D
解决方案
如果您正在做 ASP.NET Core 应用程序,请查看数据保护: https ://docs.microsoft.com/en-us/aspnet/core/security/data-protection/using-data-protection?view=aspnetcore -3.1
原来下面已被弃用。感谢您指出了这一点。
否则,如果您被允许使用不安全的代码,请在
SecureString
此处查看。
推荐阅读
- python - “列表”对象没有属性“文本”
- postgresql - 在 Entity Framework Core 中为 PostgreSQL 表的计算列设置公式
- swift - 当标签栏在 tvOS 13 中没有焦点时,可以隐藏标签栏焦点吗?
- python - 如何在bash脚本中使用参数执行复杂的python脚本
- documentation - 我应该如何提供巨大的参考表?
- browserstack - X-ray + browserstack 我们希望将 X-ray 与 browserstack 集成
- python - 使用索引的模糊搜索
- python - Discord.py bot - 如何让机器人根据命令内容做出响应?
- ios - 如何知道从服务器获取的日期格式
- module - 重新导出实现而不导出定义