Rails Rails 限制失败次数这个功能怎么做?

evan · November 05, 2012 · Last by evan replied at November 09, 2012 · 3169 hits

比如连续输错 10 次,30 分钟不让再输入之类的。。。

其实我是来找 gem 的。。

数据库存最后的输入时间和输错次数,输入正确就清 0

其实这个逻辑很简单,这么简单的需求又何苦要去折腾一个 gem 呢

最直接的,先写个 if。。。eslif。。。end,然后想办法把这个 if 独立出来,按照你的业务逻辑写就可以了,没有必要 gem,浪费了。

你需要两个功能。 一个是输入错误次数的统计,正确之后清零。 一个是一段时间不让登陆。

简单做法可以写到 session 里面,错误就 session[:error] += 1

session[:error] >= 10 时 reject_todo_something,正确就 session[:error] = 0

首先,这个功能需要满足什么样的需求? 是防止密码暴力破解?用户账户安全性要求怎么样? 不同的安全性要求,需要设计不同的方案。从锁住用户密码,到只用 session 防君子不防小人。 这个需要先弄清楚。

扔到一个 key-value cache 里去做统计 则可以实现 IP,IP 段,用户名等等的匹配

@linjunhalida 防止密码暴力破解

You need to Sign in before reply, if you don't have an account, please Sign up first.