基于签名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变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常