我正在使用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>
如果用户三次失败以给出正确答案,则必须锁定其帐户。如何才能做到这一点?
答案 0 :(得分:0)
创建一个SecurityAnswers表,并在check_answer处理程序中为每个答案创建一个新记录。存储源IP(尽管黑客工具允许攻击者每次更改一次),浏览器信息(同上),用户名以及答案是通过还是失败。
在您通过这些详细信息查询该表并在过去的X分钟内找到2个以上的失败答案后锁定用户。