【问题标题】:Safe Password Characters for Asp.Net MVC RegEx ValidationAsp.Net MVC RegEx 验证的安全密码字符
【发布时间】:2014-04-30 22:23:55
【问题描述】:

在 ASP.NET MVC4 应用程序中,哪些字符被认为是安全的密码?验证价值的正确方法是什么?我一直在尝试使用字母数字字符加上几个简单的字符。不幸的是,我遇到了 RegEx 无法触发的问题。

我允许的字符是:

!@#$%&+

我使用的验证属性和正则表达式是:

[RegularExpression(@"^[a-zA-Z0-9!@#$%&+]*$")]

【问题讨论】:

  • IMO 任何字符对于密码都是安全的,只要它在 POST 方法期间未被浏览器修改(据我所知没有)。为什么?因为大多数安全系统都会存储一个散列值,并且从不显示原始值,所以只要用户可以输入它就没有关系。
  • 我同意允许密码中包含任何字符是非常好的,我发现如果我每次输入密码时都去掉尾随空格,我会遇到更少的用户“密码问题”。如果用户故意这样做,这不会导致任何问题,但是由于人们确实看到了尾随空格的显着差异,他们不明白为什么他们的密码无效。并且 AMEN 使用存储加盐哈希。
  • 会有很多用户拥有非常简单的密码,但很多用户会选择或想要选择允许的最晦涩的字符,没有理由不让他们这样做那个。

标签: c# regex asp.net-mvc


【解决方案1】:

在 ASP.NET MVC4 应用程序中,哪些字符被认为是安全的密码?

所有的。

你有充分的理由实施这样的规则吗?

鼓励您的用户选择一个长且不太复杂的密码。您可以通过password strength indicator 向他们提供反馈。

当我们谈论密码强度时,这个 XKCD 漫画是相关的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多