python - Django框架下如何实现非法登录次数限制的功能?

查看:107
本文介绍了python - Django框架下如何实现非法登录次数限制的功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

基于Django框架下的用户登录页面,如果想实现非法登录次数限制的功能(比如说,用户在5分钟内连续输错10次密码,则该用户在24小时内无法登录),有哪些思路?

解决方案

提供一些思路供参考:

  1. 用户登录失败,将登录失败次数记录到cache中:比如redis

  2. 在5分钟内连续登录失败3次,为了防止暴力破解用户密码行为,此时可在登录页面提供验证码输入框

  3. 验证码输入失败,不需要验证账号密码是否正确

  4. 如果验证码正确,但是5分钟内已经输错了10此账号密码,则可以冻结该用户,设置该用户的is_active属性为False;冻结24小时,可在cache中写一个TTL为24小时的Flag,比如以username为key

  5. 用户登录时,首先检查是否存在key未username的Flag,如果有表明该用户在冻结状态中,因为设置了is_active为False,登录自然会失败

  6. 如果flag不存在于cache中,在检查该密码是否正确,如果正确可设置is_active为True,以恢复期冻结状态

这篇关于python - Django框架下如何实现非法登录次数限制的功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆