django-Ratelimit é uma aplicação Django que fornece um decorador para classificar-limite de visualizações & nbsp; A limitação pode ser com base no endereço IP ou um campo no pedido - ou um GET ou POST variável..
Se o limite de velocidade é ultrapassado, ou um 403 Proibido pode ser enviado, ou o pedido pode ser anotada com um atributo limitado, o que lhe permite tomar outra ação como a adição de um captcha para um formulário.
Usando o Django Ratelimit
de ratelimit.decorators Ratelimit importação é a maior coisa que você precisa fazer. O decoradorratelimit fornece vários argumentos opcionais com padrões sensíveis (em itálico).
ip: Se a taxa-limite baseado no IP. Verdadeiro
bloco: Se bloquear a solicitação em vez de anotações. Falso
método: Que método (s) HTTP para classificar-limite. Pode ser uma cadeia ou uma lista. tudo
campo: Quais campo (s) HTTP para usar a taxa-limite. Pode ser uma cadeia ou uma lista. nenhum
Classificação: O número de pedidos por unidade de tempo permitidos. 5 / m
Exemplos:
ratelimit ()
myview def (request):
& Nbsp; # será verdadeiro se o mesmo IP faz mais de cinco solicitações / hora.
& Nbsp; was_limited = getattr (request, "limitado", False)
& Nbsp; return HttpResponse ()
ratelimit (bloco = True)
myview def (request):
& Nbsp; # Se o mesmo IP faz> 5 reqs / min, voltará HttpResponseForbidden
& Nbsp; return HttpResponse ()
ratelimit (campo = 'username')
Entre def (request):
& Nbsp; # Se o mesmo nome de usuário ou IP é usado> 5 vezes / min, esta será True.
& Nbsp; # O `valor username` virá de GET ou POST, determinada pelo
& Nbsp; # método de solicitação.
& Nbsp; was_limited = getattr (request, "limitado", False)
& Nbsp; return HttpResponse ()
ratelimit (method = "POST")
Entre def (request):
& Nbsp; # aplicam-se apenas aos postos de limitação de velocidade.
& Nbsp; retornar HttpResponseRedirect ()
ratelimit (campo = ['username', 'other_field'])
Entre def (request):
& nbsp; valores de campo múltiplo # Uso.
& Nbsp; return HttpResponse ()
ratelimit (taxa = '4 / h')
def lento (request):
& Nbsp; # Permitir 4 reqs / hora.
& Nbsp; return HttpResponse ()
Requisitos :
- Python
- Django
Comentários não encontrado