django-Ratelimit ist ein Django-Applikation, die einen Dekorateur bietet, um Ansichten Limit bewerten & nbsp; Die Begrenzung auf die IP-Adresse oder ein Feld in der Anfrage basieren - entweder als GET oder POST Variablen..
Wenn die Frequenzgrenze wird exceded entweder ein 403 Forbidden gesendet werden können, oder die Anforderung mit einer begrenzten Attribut annotiert werden, so dass Sie eine andere Aktion wie das Hinzufügen eines captcha zu einer Form zu nehmen.
Mit Django Ratelimit
von ratelimit.decorators import Ratelimit ist die größte Sache, die Sie tun müssen. Dieratelimit Dekorateur bietet mehrere optionale Argumente mit sinnvollen Standardeinstellungen (in Kursivschrift).
ip: Legt fest, ob auf der Grundlage der IP-limit bewerten. Wahr
Block: Ob die Anfrage statt Kommentierung blockieren. Falsch
Methode: Welche HTTP-Methode (n), um zu bewerten, zu begrenzen. Kann einen String oder eine Liste sein. alle
Gebiet: Welche HTTP Bereich (e), um zu rate-limit verwenden. Kann einen String oder eine Liste sein. keiner
Preis: Anzahl der Anfragen pro Zeiteinheit erlaubt. 5 / m
Beispiele:
ratelimit ()
def myview (Anfrage):
& Nbsp; # wahr sein wird, wenn die gleiche IP macht mehr als 5 Anfragen / Minute.
& Nbsp; was_limited = getattr (Anfrage, "begrenzt", False)
& Nbsp; zurück Httpresponse ()
ratelimit (Block = True)
def myview (Anfrage):
& Nbsp; # Wenn die gleiche IP macht> 5 reqs / min, wird zurückkehren HttpResponseForbidden
& Nbsp; zurück Httpresponse ()
ratelimit (field = "username")
def Login (Anfrage):
& Nbsp; # Wenn der gleiche Benutzername oder IP wird verwendet> 5-mal / min, wird dies wahr sein.
& Nbsp; # Die `username` Wert von GET oder POST kommen, durch die bestimmt wird
& Nbsp; # Anfragemethode.
& Nbsp; was_limited = getattr (Anfrage, "begrenzt", False)
& Nbsp; zurück Httpresponse ()
ratelimit (method = "POST")
def Login (Anfrage):
& Nbsp; # Nur gelten geschwindigkeitsbestimmend zu Beiträge.
& Nbsp; zurück HttpResponseRedirect ()
ratelimit (Bereich = ['username', 'other_field'])
def Login (Anfrage):
& Nbsp; # Verwenden Sie mehrere Feldwerte.
& Nbsp; zurück Httpresponse ()
ratelimit (Rate = '4 / h)
def langsam (Anfrage):
& Nbsp; # Erlaube 4 reqs / Stunde.
& Nbsp; zurück Httpresponse ()
Anforderungen :
- Python
- Django
Kommentare nicht gefunden