不允许使用密码中的字符?

coo*_*per 8 php mysql security passwords

密码中是否允许/不允许使用某些特殊字符?

我将密码存储在db hashed/salted中,并使用PDO来防止注入.我做得还够吗?最近我遇到了一个系统,它不允许一些角色,不记得所有角色,但其中一个是&符号&.他们这样做是出于反数据库注入的原因,还是我还缺少其他东西?密码字符是否应限制在某一组字符或不需要?

Pek*_*ica 10

没有技术原因可以禁止密码中的任何字符.我想在你描述的情况下,他们只允许字母数字字符来避免用户方面的问题(例如,通过输入另一个国家的键盘上没有的字符).

许多提供商和站点强制用户选择包含最小数字的非常复杂的密码,有时甚至是特殊字符,以防止暴力破解或字典攻击.

我不认为强迫人们选择复杂的密码是明智的.你不记得的密码,你会在某处写下来,这通常会给现实生活带来更大的安全风险.

登录系统中的一个简单的速率限制(例如,在3次登录尝试失败后拒绝访问15分钟)更加优雅地消除了暴力破坏威胁.

一个人不必100%同意它,但我发现这篇关于微软研究院主题的挑衅性论文非常有趣.如此长,不要感谢外部性:用户对安全建议的理性拒绝

从摘要:

通常建议用户对安全问题毫无希望地懒惰和无动机.他们选择弱密码,忽略安全警告,并且忘记了证书错误.我们认为,从经济角度来看,用户拒绝接受他们收到的安全建议是完全理性的.该建议提供了保护他们免受攻击的直接成本,但以努力的形式给他们带来更大的间接成本.

  • +1没有限制.我不相信需要限制我的密码的网站 - 这让我想知道为什么他们觉得有必要限制它,以及他们如何存储它. (5认同)
  • 写下您的复杂密码不会像写下您的弱或"易于猜测"的密码那样带来安全风险.大多数攻击是远程进行的.如果人们可以访问您的书面密码所在的桌面,那么他们也可能会使用可以让您登录的cookie对您的计算机进行物理访问.除非您加密硬盘,但我不知道任何非硬盘. -geek那样做.我不认为锁定系统是个好主意.对用户进行DoS操作太容易了.我所要做的就是在您的帐户上进行一些尝试失败以阻止您. (4认同)
  • @Daniel:大多数优秀的锁定系统只在x尝试失败后才锁定特定的IP或IP范围,而不是整个互联网,他们甚至可以显示CAPTCHA来解锁锁定. (3认同)
  • @Daniel很好地重新进行了远程攻击,尽管我仍严格反对强迫人们使用安全密码.我还认为锁定系统是一个好的和经过测试的东西.我看到很多大型的大众市场供应商都使用了一个,如果他们在DoS攻击中遇到很多问题就不能做.锁定用户的可能性仍然存在,这是事实. (2认同)
  • @Alix:我在考虑他们锁定特定帐户的系统.我的大学那样做.通过阻止他们将他们的答案上传到强制性作业,让人们通过课程将是微不足道的. (2认同)