MVC密码最佳实践



我有一个密码为剃刀字段的登录表单。我的网站是通过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密码加密?

不,不要在表单上添加加密,这样做需要您在使用之前解密数据,并且仍然不能真正解决您所关心的问题。我建议您修改该异常处理程序以跳过密码字段。如果您的站点接受信用卡,您可能希望对这些字段也给予类似的处理。

最新更新