【发布时间】:2014-08-13 19:51:50
【问题描述】:
我有一个登录表单,其中包含一个用于密码的剃须刀字段。 我的网站在 https 上。
一切正常,直到有人在基本控制器的 OnException(ExceptionContext filterContext) 下添加此代码:
string[] keys = filterContext.HttpContext.Request.Form.AllKeys;
var valueMap = new List<KeyValuePair<string, string>>();
foreach (var key in keys)
{
valueMap.Add(new KeyValuePair<string, string>(key, filterContext.HttpContext.Request.Form[key]));
}
if (valueMap.Any())
{
sb.AppendLine("POST Parameters : ");
foreach (var keyValuePair in valueMap)
{
sb.AppendLine(string.Format(" - {0} : {1}", keyValuePair.Key, keyValuePair.Value));
}
}
然后向支持人员发送一封包含字符串生成器内容的电子邮件。 密码已包含在邮件中。
我不希望这种情况再次发生。
什么是最好的解决方案? MVC4 中是否有内置的东西来处理这种情况? 我必须在表单上使用 JS 密码加密吗?
【问题讨论】:
-
不清楚是什么问题,不想再发生什么情况?
-
简单的解决方案是跳过其中包含“密码”一词的键,或者其他标识表单中密码字段的键。
-
通过电子邮件发送内容 OnException 似乎是一个非常糟糕的主意。你为什么不使用HandleErrorAttribute?
-
当有人使用安全网站时,他们希望他们的数据(无论是密码还是他们输入的任何其他内容)都是如此。安全的!不会因为您的代码引发异常而暴露。您应该删除此代码或让自己成为一名优秀的律师。
标签: c# asp.net-mvc password-protection