如果用户未能回答安全字段,则锁定用户

时间:2013-12-17 17:45:06

标签: ruby-on-rails authentication devise

我正在使用Devise作为我的东西。

在我的场景中,如果用户登录,他将被重定向到包含安全问题的新页面。如果他的答案匹配,那么他将被重定向到仪表板页面。

控制器 sessions_controller.rb

  

def after_sign_in_path_for(resource)

 home_security_path   
     

查看 security.html.erb

   {:controller => " usersignup&#34 ;,   :action =>' check_answer'},:multipart =>假)做| f | %GT;      

                  <p><%= Question.find(3).question %></p>

                  <p><%= f.text_field "answer_#{question.id}" %></p>

                </div>
     

如果用户三次失败以给出正确答案,则必须锁定其帐户。如何才能做到这一点?

1 个答案:

答案 0 :(得分:0)

创建一个SecurityAnswers表,并在check_answer处理程序中为每个答案创建一个新记录。存储源IP(尽管黑客工具允许攻击者每次更改一次),浏览器信息(同上),用户名以及答案是通过还是失败。

在您通过这些详细信息查询该表并在过去的X分钟内找到2个以上的失败答案后锁定用户。