刚刚完成我的注册/登录/注销等...我的网站的类型功能,我很好奇。是否应该强制用户使用满足特定强度或字符集的密码?
示例一,强制他们使用长度 > 8 的字母数字密码
示例二,只允许使用字母数字字符和一些特殊字符(即:!@#$%)。
第一个示例显然是在银行等敏感站点上强制执行的一件好事,但我想不出限制用户密码字符的好理由。只要字符串被清理以进行 SQL 注入(inject),他们使用什么字符就不重要了,对吗?
编辑
当然,密码正在被哈希处理
最佳答案
请,不要告诉我密码中不能使用哪些字符。
您应该支持密码中的全部 Unicode 代码点,但 ASCII 控制字符 (\0
– \0x20
) 可能除外。
您有责任确保任何普通字符都可以在密码中使用,包括空格、引号和反斜杠。
密码不会容易受到 SQL 注入(inject)的攻击,因为数据库决不能看到实际的密码。您应该在密码接近数据库之前对其进行哈希和加盐处理。 (使用bcrypt)
<小时/>最低复杂性要求是一把双刃剑。如果您需要的密码对于用户来说太复杂而难以记住,他们最终会将其写在某个地方,并且可能是在手边的某个地方。
至少,您应该需要 6 个字符以及至少两个 A-Z
、a-z
、0-9
或任何其他字符。
关于passwords - 用户的密码是否应该限制为特定的字符集或强度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811090/