django-ratelimit jest aplikacja, która zapewnia Django dekorator, aby ocenić-granicznych widoki & nbsp; Ograniczenie może być na podstawie adresu IP lub pola we wniosku - albo GET lub POST zmiennej..
Jeśli ograniczenie prędkości jest przeszło, albo 403 Forbidden mogą być wysyłane lub wniosek może być opatrzone ograniczonej atrybutu, co pozwala wykonać kolejne czynności, jak dodanie captcha do formularza.
Używanie Django Ratelimit
z ratelimit.decorators import ratelimit jest największą rzeczą, którą musisz zrobić. ratelimit Dekorator oferuje kilka opcjonalnych argumentów z domyślnych rozsądnych (kursywą).
ip: Czy aby ocenić limitu na podstawie adresu IP. Prawdziwy
Blok: Czy blokować żądania zamiast opisywania. Fałszywy
Metoda: Która metoda (-y) HTTP, aby ocenić-limitu. Może być ciąg znaków lub listę. wszystko
Pole: Które pole (pola) HTTP użyć do stopy terminu. Może być ciąg znaków lub listę. żaden
Stawka: liczba wniosków w jednostce czasu dozwolony. 5 / m
Przykłady
ratelimit ()
MyView def (wniosek):
& Nbsp; # będzie prawdziwa, jeśli ten sam IP sprawia, że więcej niż 5 wniosków / minute.
& Nbsp; was_limited = getattr (wniosek, "ograniczone", False)
& Nbsp; return HttpResponse ()
ratelimit (blok = True)
MyView def (wniosek):
& Nbsp; # Jeśli ten sam IP sprawia,> 5 reqs / min, powróci HttpResponseForbidden
& Nbsp; return HttpResponse ()
ratelimit (pole = "nazwa użytkownika")
def login (wniosek):
& Nbsp; # Jeśli sama nazwa użytkownika lub adres IP jest używany> 5 razy / min, to będzie prawda.
& Nbsp; # `Wartość username` będzie pochodzić z GET i POST, zależy od
& Nbsp; # metoda żądania.
& Nbsp; was_limited = getattr (wniosek, "ograniczone", False)
& Nbsp; return HttpResponse ()
ratelimit (method = "POST")
def login (wniosek):
& Nbsp; # stosować tylko ograniczający szybkość do postów.
& Nbsp; powrócić HttpResponseRedirect ()
ratelimit (pole = ['nazwa użytkownika', 'other_field'])
def login (wniosek):
& nbsp; # Użyj wartości wielu pól.
& Nbsp; return HttpResponse ()
ratelimit (stopa = '4 / h ")
def powolne (wniosek):
& Nbsp; # Pozwól 4 reqs / godzinę.
& Nbsp; return HttpResponse ()
Wymagania :
- Python
- Django
Komentarze nie znaleziono