django-RateLimit est une application Django qui fournit un décorateur pour limiter la vitesse des vues & nbsp; La limitation peut être basée sur l'adresse IP ou un champ dans la demande - soit un GET ou POST variables..
Si la limite de vitesse est exceded, soit un 403 Forbidden peuvent être envoyés, ou à la demande peuvent être annotées avec un attribut limitée, vous permettant de prendre une autre action, comme l'ajout d'un captcha à un formulaire.
Utiliser Django RateLimit
de ratelimit.decorators RateLimit d'importation est la plus grande chose que vous devez faire. Le décorateurratelimit fournit plusieurs arguments optionnels avec bon sens par défaut (en italique).
ip: Que ce soit pour limiter la vitesse en fonction de l'adresse IP. Vrai
bloc: Que ce soit pour bloquer la demande au lieu de l'annotation. Faux
méthode: Quelle méthode (s) HTTP pour limiter la vitesse. Peut être une chaîne ou une liste. tous
champ: Quel domaine (s) de HTTP à utiliser pour le taux limite. Peut être une chaîne ou une liste. aucun
taux: Le nombre de demandes par unité de temps permis. 5 / m
Exemples:
ratelimit ()
def myview (demande):
& Nbsp; # sera vrai si la même IP fait plus de 5 demandes / minute.
& Nbsp; was_limited = getattr (demande, «limitée», False)
& Nbsp; return HttpResponse ()
ratelimit (bloc = True)
def myview (demande):
& Nbsp; # Si la même adresse IP rend> 5 reqs / min, sera de retour HttpResponseForbidden
& Nbsp; return HttpResponse ()
ratelimit (champ = 'nom d'utilisateur')
def login (demande):
& Nbsp; # Si le même nom d'utilisateur ou l'adresse IP est utilisée> 5 fois / min, ce sera vrai.
& Nbsp; # La valeur de `username` viendra de GET ou POST, déterminé par le
& Nbsp; méthode de demande #.
& Nbsp; was_limited = getattr (demande, «limitée», False)
& Nbsp; return HttpResponse ()
ratelimit (method = 'POST')
def login (demande):
& Nbsp; # applique Seulement limitant la vitesse à des postes.
& Nbsp; retourner HttpResponseRedirect ()
ratelimit (domaine = ['nom d'utilisateur', 'other_field'])
def login (demande):
& nbsp; les valeurs # utilisation multiple de terrain.
& Nbsp; return HttpResponse ()
ratelimit (= taux de 4 '/ h)
def lente (demande):
& Nbsp; # Laisser 4 reqs / heure.
& Nbsp; return HttpResponse ()
Exigences :
- Python
- Django
Commentaires non trouvées