Django大型项目视图框架。

djbrut的Python项目详细描述


DjBrut logo

DJBRUT徽标

Build StatusPyPI versionStatusCode sizeLicense

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了解更多信息 参数,如自定义错误消息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配