Django大型项目视图框架。
djbrut的Python项目详细描述
DJBRUT徽标
django项目的简单暴力保护。
默认方格:
- 最大IP请求数。
- 对用户的最大请求数。
- 一个csrf令牌的最大请求数(愚蠢但有效)。
- 最大请求频率限制。
DJBRUT使用redis作为所有计数器的存储。
安装
pip install djbrut
用法
fromdjango.httpimportHttpResponsefromdjbrutimportAttemptdefsome_view(request):attempt=Attempt('some rule type name',request)# checkifnotattempt.check():# errorreturnHttpResponse(attempt.error)# success...
您可以查看example project了解更多详细信息。
配置
只需设置规则:
BRUTEFORCE_LIMITS={'default':Rule(user=100,# max requests for one user by BRUTEFORCE_TIMELIMITip=300,# max requests for one IP by BRUTEFORCE_TIMELIMITcsrf=50,# max requests with one CSRF token by BRUTEFORCE_TIMELIMITfreq=0,# max request frequency for client [seconds]),'some rule type name':Rule(user=100,# max requests for one user by BRUTEFORCE_TIMELIMITip=300,# max requests for one IP by BRUTEFORCE_TIMELIMITcsrf=50,# max requests with one CSRF token by BRUTEFORCE_TIMELIMITfreq=0,# max request frequency for client [seconds]),}
Attemptget rule type name作为第一个参数。如果未找到规则类型名称 在bruteforce_limits的键中,将使用“default”。如果你不设定 默认规则然后通过规则类型必须存在于BruttFuffic限制中 钥匙。
BRUTEFORCE_TIMELIMIT–所有尝试计数器的生存时间。
您可以查看default settings了解更多信息 参数,如自定义错误消息。