詹戈·布鲁特菲尔斯·巴斯特
django-brutebuster2的Python项目详细描述
说明
brutebuster是一个简单的、可插入的django应用程序,可以帮助您抵御密码暴力攻击。
该模块重写django.contrib.auth中的default authenticate()函数,以便为自定义登录页和管理登录页提供自动保护。
每个块对唯一的用户名/IP地址组合应用。这样,来自不同IP地址的暴力尝试不会阻止原始用户登录。
安装
- 将brutebuster模块安装到python路径中
#pip install django-brutebuster2
要验证python模块是否可用,可以运行django shell并检查brutebuster.version的值:
$python manage.py shell
(InteractiveConsole)
>>> import BruteBuster
>>> print(BruteBuster.version)
0.2.0
如果你没有看到任何错误,那么恭喜!困难的部分结束了。
- 将brutebuster添加到settings.py中的已安装应用程序列表中
- 将brutebuster.middleware.requestmiddleware添加到settings.py中的中间件类中
- 运行python manage.py migrate--运行syncdb将brutebuster表添加到数据库中
- 就这样!如果需要,不要忘记重新启动服务器。
操作
如果一切正常,您应该在django管理界面中看到一个失败的尝试表。每当检测到登录失败时,相应用户名/IP地址组合的失败计数器都会递增。如果计数器超过某个阈值(称为bb_max_failures),则此用户和IP的登录尝试将被阻止,直到bb_block_interval(minutes)通过而没有失败的登录。
默认bb_max_failures值为5,默认bb_block_interval为3(分钟)。这两个值都可以在settings.py中重写。
显示
在django admin的failed attempts表中,所有活动块的“blocked”列都将设置为true。
块删除
删除块的最简单方法是从失败的尝试表中删除相应的行。从这个表中删除数据是完全安全的(最坏的情况是删除一些现有的块)
未来
找到什么虫子了吗?有什么建议吗?需要尚未出现的功能吗?不管怎样,我们都很想收到你的回信。您可以使用联系方式,或者直接在office()mtr-design.com向我们发送电子邮件。