基于签名cookie的django限制rps模块

django_limiter的Python项目详细描述


https://img.shields.io/pypi/v/django_limiter.svg

django限制器是一个基于签名cookie的rps(每秒请求数)限制器。

它是怎么工作的?

如果用户(或解析器)第一次访问您的站点,他将重定向到特殊页面并 接收具有当前时间戳的签名cookie。在这个页面上,他将被JavaScript重定向到URL 他以前要求过。

如果用户使用限制器的cookie访问您的站点,限制器会检查cookie,如果最后一个请求没有多少时间, 限制器抛出带有429状态代码的http响应(请求太多)

否则什么都不会发生

客户端无法正确更改限制器的cookie和滥用(请在此处阅读有关签名的详细信息:https://docs.djangoproject.com/en/dev/topics/signing/

安装

从pypi安装:

$ pip install django_limiter

'django_limiter'附加到INSTALLED_APPS中:

INSTALLED_APPS=[# your apps'django_limiter',]

'django_limiter.middleware.RateLimiter'之前将'django_limiter.middleware.RateLimiter'插入MIDDLEWARE设置(或MIDDLEWARE_CLASSES):

MIDDLEWARE=['django_limiter.middleware.RateLimiter',# Another middlewares]

url(r'^limiter/', include(django_limiter.urls))添加到URL配置:

importdjango_limiterurlpatterns=[url(r'^admin/',admin.site.urls),# Another url patternsurl(r'^limiter/',include(django_limiter.urls)),]

配置

以下是您可以设置的几个设置:

LIMITER_COOKIE_NAME-cookie的名称默认值:'限制器'

LIMITER_INTERVAL-客户端必须等待时间(以秒为单位,可以是浮动的),然后才能发送下一个请求。默认值:0.333

LIMITER_TEMPLATE_NAME-客户端临时获取的页模板的名称。此页应在经过LIMITER_INTERVAL秒后将客户端重定向到请求的页。模板接收'timeout''path''request'上下文

LIMITER_EXCEPT-URL限制列表必须除外。不应将根('/')添加到此列表中。默认值:[]

LIMITER_EXCEPT=['/my/custom/path',reverse_lazy('or-lazy-reverse')]

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

推荐PyPI第三方库


热门话题
java如何让用户决定按钮的特定颜色   java Tomcat jdbc连接池,使用后不释放连接   Java泛型类可分配性   javaactivemq&如何在路由路径中创建依赖关系   java为什么没有接收到操作用户?   windows如何启动使用cmd中预编译DLL的java swing应用程序?   java JFreechart实时组合图,在未收到数据点的情况下呈现step子图表的上一个值   java排序自定义数组列表   java如何从HSLFSlideShow获取文本格式信息   java不能将片段和活动登录结合起来   java是下载位于远程存储服务中的文件的有效方法   java AS:将点数交给GameOverActivity   java如何在textView中将焦点放在新生成文本的顶部?   HashMap中特定于Java存储的类类型   java使用不同的变量类型进行计算   if语句中的Java poll()   检查匹配括号的java字符堆栈没有错误,但也没有任何作用   java Netbeans不断将应用程序部署到错误的服务器