[ASP.NET 2.0 Security FAQs]如何在membership中强制使用高安全性的密码
Posted on 2005-12-10 21:50 J. Lin 阅读(1841) 评论(2) 编辑 收藏 举报原文链接
翻译:2005-12-10 by Jackie Lin
你可以在membership里配置minRequiredPasswordLength, minRequiredNonAlphanumericCharacters, 和 passwordStrengthRegularExpression 属性,来强制使用安全性高的密码.
安全性高的密码可以用来防止压力攻击(brute force attacks)和字典攻击(dictionary attacks).
SqlMembershipProvider 和ActiveDirectoryMembershipProvider 的默认密码强度配置为:最少7个字符,其中最少有1个非字母数字的字符 .
如果你是在活动目录(AD)中使用ActiveDirectoryMembershipProvider , 你的域密码组策略(domain password policy)会默认的被使用, 不过你可以在你的程序里配置membership以覆盖相关的配置. 同样的, 如果你是在ADAM中使用ActiveDirectoryMembershipProvider , 你的本地密码组策略(local password policy)会默认被使用, 你也可以配置membership覆盖相关的配置.
你可以使用正则表达式来配置特别的密码强度规则, 或者你也可以配置密码中数字、字符、字母的最小最大长度.
使用正则表达式
<providers>
<add passwordStrengthRegularExpression=
"^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$" />
</providers>
</membership>
使用最小的非字母数字字符长度
<providers>
<add minRequiredPasswordLength=10 minRequiredNonalphanumericCharacters=2 />
</providers>
</membership>
更多信息
更多关于强密码的信息请参考:"How To: Protect Forms Authentication in ASP.NET 2.0" http://msdn.microsoft.com/library/en-us/dnpag2/html/PAGHT000012.asp