Rate limiting (ограничение частоты)

Ограничение числа запросов от клиента за период — защита от перебора и DoS.

СигнатураRate limiting

Rate limiting ограничивает, сколько запросов может сделать клиент за единицу времени. Это снижает эффективность brute-force, защищает от злоупотреблений API и смягчает простые DoS-атаки.

Как применять: ограничивайте по IP и/или по аккаунту, особенно на чувствительных эндпоинтах (логин, восстановление пароля), возвращайте код 429 Too Many Requests, используйте готовые библиотеки и общий счётчик (например в Redis).

import time
from collections import defaultdict

hits = defaultdict(list)

def allow(ip, limit=10, window=60):
    now = time.time()
    hits[ip] = [t for t in hits[ip] if now - t < window]
    if len(hits[ip]) >= limit:
        return False  # вернуть 429
    hits[ip].append(now)
    return True
← Все записи: Веб-уязвимости и защита
Поддержать проект