【问题标题】:Simple password validation c# MVC简单的密码验证 c# MVC
【发布时间】:2016-04-05 22:32:15
【问题描述】:

我正在制作一个简单的新闻提要,我从一个隐藏在我需要手动输入的 url 上的表单中输入一个新项目(没有帐户功能)。但是,如果找到表单,我想要一个额外的防线,所以我添加了一个密码字段,所以如果密码与我的预设匹配,那么表单会将数据保存到 xml 文件中。

现在的问题是,进行验证的最佳做法是什么?我将密码放在哪里?

目前我的代码如下所示:

[HttpPost]
[ValidateAntiForgeryToken()]
public ActionResult AddPost(AddPostModel model)
{
    if (ModelState.IsValid && model.Password == "MyPassword")
    {
        AddPostModel.AddPostToXML(model);
    }
    return RedirectToAction("Index");
}

问题是它是一个小网站,最坏的情况是他们添加了不应该存在的新闻项目。那么我是否需要采取额外的预防措施,或者它对于它应该保护的东西是否足够安全?

由于我是新手,我在安全方面没有太多经验,所以任何指南或要记住的内容也将不胜感激。

谢谢!

【问题讨论】:

    标签: c# validation security asp.net-mvc-4 passwords


    【解决方案1】:

    经过一番讨论,我决定在 web.config 中设置一个散列密码,然后我会检查密码是否正确。然后在检查过程中,我只是用相同的函数对输入的密码进行哈希处理,并检查它是否匹配。

    如果其他人正在寻找类似的东西,这是我建立的课程。 =)

    public class Security
    {
        public static bool ValidatePassword(string password)
        {
            string hashValue = HashPassword(password);
    
            if (hashValue == ConfigurationManager.AppSettings["password"])
            {
                return true;
            }
    
            return false;
    
        }
    
        private static string HashPassword(string passwordToHash)
        {
            HashAlgorithm hash = new SHA256Managed();
            byte[] plainTextBytes = System.Text.Encoding.UTF8.GetBytes(passwordToHash);
            byte[] hashBytes = hash.ComputeHash(plainTextBytes);
    
            //in this string you got the encrypted password
            return Convert.ToBase64String(hashBytes);
        }
    }
    

    【讨论】:

      【解决方案2】:

      我找到了有用的链接,可以帮助您了解自定义安全级别 http://www.c-sharpcorner.com/uploadfile/jitendra1987/password-validator-in-C-Sharp/ 你看过 Ajax 工具包吗?他们有很好的机制来设置您的第一道安全防御,即密码长度、增加复杂性和其他功能。请看:http://www.ajaxcontroltoolkit.com/PasswordStrength/PasswordStrength.aspx

      【讨论】:

      • 问题不是我需要验证新密码,而是验证输入的密码是否与我在网站上输入新闻时设置的预定义密码相同。
      猜你喜欢
      • 2013-03-04
      • 1970-01-01
      • 2016-12-13
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 1970-01-01
      • 2023-03-31
      相关资源
      最近更新 更多