asp.net - ASP.NET DataAnnotations 是否阻止将密码作为纯文本保存在内存中?
问题描述
让我们来看看 Visual Studio 2017 中 ASP.NET MVC5 自动生成的代码:
public class RegisterViewModel
{
[Required]
[EmailAddress]
[Display(Name = "Email")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
的password
成员被标记为DataType(DataType.Password)
。我们知道,如果我们以纯文本形式保存密码,即使在运行时在 RAM 中,这也是漏洞。
我的问题是这个标签是否会导致字符串存储在内存中?
当我调试并查看内存时,我找不到密码,虽然我可以找到另一个字符串。
解决方案
推荐阅读
- tensorflow - bazel 使用本地下载的 tensorflow 构建 tensorflow 服务
- html - 在 html 中,Aside (With a Heading) 和 Section (With a Heading) 是什么样的?
- java - org.hibernate.HibernateException:迁移到 Hibernate 5 后当前事务不在进行中
- rest - PATCH 与 POST - 增量计数器
- python - 将部分添加到现有字符串的正确方法是什么
- r - 基于原始和特定行的新值重新排名
- php - 如何从数据库中获取数据并在 PHP 中发送响应?
- javascript - jQuery 浮点图表使用 webpack 生成“Uncaught TypeError: e.setTimeout is not a function”
- django - 如何在 Django 表单中显示标记而不是纯文本?
- mysql - MySQL 如何处理多语句?在后端同时执行?