PyForge è in vendita solo qui, sul sito ufficiale py-forge.com — diffida delle imitazioni.

Torna al catalogo
RateShield: Guida anti-abusoAI & Automation

RateShield: Guida anti-abuso

#python#automation#microsaas

Proteggi le API dagli attacchi brute-force e dal bot scraping senza i costi elevati delle soluzioni SaaS. Questa guida d'ingegneria avanzata per Go & Docker offre un rate limiter a zero dipendenze e con latenza sub-millisecondo dotato di tarpitting dinamico, evitando la necessità di cluster Redis. Include benchmark completi e il deployment Docker pronto all'uso della CLI di RateShield.

Leggi l'approfondimento tecnicoRateShield: Rate Limiting Anti-Abuso Sub-Millisecondo Senza Redis
main.pymain.py — estratto d'esempio nello stile del tool
#!/usr/bin/env python3
"""
RateShield Engine & CLI

High-performance, zero-dependency API rate limiter and dynamic tarpitting engine.
Protects endpoints against brute-force attacks and bot scraping without requiring
external memory stores like Redis.

Features:
  - Sub-millisecond token-bucket algorithm with sub-second precision
  - Dynamic tarpitting with exponential backoff delays for abusive callers
  - Sliding window state management with deterministic background pruning
  - Zero external dependencies using Python 3.8+ standard library
  - Full telemetry and JSON structured audit logging

Usage:
  $ python main.py --host 0.0.0.0 --port 8080 --rate 100/s
  $ python main.py inspect --ip 192.168.1.1
"""

from dataclasses import dataclass, field
from enum import Enum, auto
import logging
import time
from typing import Dict, Optional, Tuple


class ShieldAction(Enum):
    """Decision outcome generated by the rate limiter for an incoming request."""

    ALLOW = auto()
    TARPIT = auto()
    BLOCK = auto()


@dataclass
class ClientState:
    """Tracks state and token bucket levels for a given client identifier."""

    tokens: float
    last_update: float
    violation_count: int = 0
    tarpit_delay_sec: float = 0.0


class RateShieldEngine:
    """Core rate limiting and dynamic tarpitting execution engine."""

    def __init__(self, capacity: float, refill_rate: float) -> None:
        self.capacity = capacity
        self.refill_rate = refill_rate
        self._clients: Dict[str, ClientState] = {}
        self._logger = logging.getLogger("rateshield")

# ... the full file ships with your download