MVC密码最佳实践

时间:2014-08-13 19:51:51

标签: c# asp.net-mvc password-protection

我有一个带有剃刀字段密码的登录表单。 我的网站已经过了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密码加密吗?

1 个答案:

答案 0 :(得分:1)

不,不要在表单上添加加密,这样做会要求您在使用之前解密数据,而这仍然无法真正解决您所关心的问题。我建议您修改该异常处理程序以跳过密码字段。如果您的网站接受信用卡,您可能也希望为这些字段提供类似的处理方式。