如何使用Ruby on Rails中的Devise验证密码强度?

Con*_*hen 14 passwords ruby-on-rails devise

我想强制用户在注册时选择一个强密码.

我知道,那里有很多jquery密码强度计,我很可能也会使用其中一个.但这并没有真正强制任何人选择强密码.注册表单也必须在没有启用js的情况下可用,因此仍然可能使用弱密码注册.

帐户必须最安全,因为如果您已登录,则可以查看其他帐户的数据,在任何情况下我都不希望这些数据.所以我想在这里寻求最大的安全性,因此我认为,最重要的是只允许使用强密码.

所以,

如何设置和自定义验证最小密码强度的要求?我唯一能在设计配置文件中找到的是密码长度.我应该用这个任务的另一个宝石吗?

aro*_*ero 13

您可以使用Devise Security扩展,您可以在其中定义密码regexp验证(以及其他内容)并强制实施所需的密码强度.

  • 恕我直言,这些测试太天真了;它只需要一个数字和大写字母。一个没有数字的很长的密码仍然是安全的,但`Passw0rd`(例如)是一个糟糕的密码(但仍然满足这些要求) (2认同)

Mat*_*ord 7

我最近发布了一个使用zxcvbn库拒绝弱密码的设计gem:

https://github.com/bitzesty/devise_zxcvbn

  • 有趣 - 这里绝对是一个设计权衡。我宁愿没有 js 依赖并得到略有不同的结果(并且只是在服务器上完成所有操作,因此客户端结果将无关紧要),但有些人需要相反的结果是有道理的。 (2认同)