API Rate Limiting: Throttling, Quota und DDoS-Schutz
API Rate Limiting verhindert Missbrauch und Überlastung Ihrer API. Dieser Leitfaden behandelt Rate Limiting Strategien, Throttling, Quota-Management und DDoS-Schutz.
Aktualisiert:Was ist Rate Limiting?
Rate Limiting ist die Begrenzung der Anzahl von Anfragen, die in einem bestimmten Zeitraum (Sekunde, Minute, Stunde) gemacht werden können.
Zwecke: API-Missbrauch verhindern, faire Nutzung gewährleisten, Serverressourcen schützen, DDoS-Angriffe reduzieren.
Bei Rate Limit Überschreitung: Gibt 429 (Too Many Requests) HTTP Statuscode zurück. Gibt mit Retry-After Header an, wann erneut versucht werden soll.
Rate Limiting erhöht API-Verfügbarkeit und Zuverlässigkeit. Gewährleistet SLA (Service Level Agreement) Compliance.
Rate Limiting Algorithmen
Fixed Window: Zähler in festem Zeitfenster (z.B. 100 Anfragen pro Minute). Einfach aber Boundary Problem (Spike an Fenstergrenzen).
Sliding Window Log: Timestamp jeder Anfrage speichern. Anfragen in letzten N Sekunden zählen. Genauer aber mehr Speicher.
Sliding Window Counter: Hybrid aus Fixed Window und Sliding Window Log. Weniger Speicher, genaueres Ergebnis.
Token Bucket: Token werden mit bestimmter Rate produziert. Jede Anfrage verbraucht einen Token. Bietet Burst-Unterstützung.
Leaky Bucket: Anfragen werden in Queue hinzugefügt und mit fester Rate verarbeitet. Bietet Traffic Smoothing.
Rate Limiting Strategien
IP-basiert: Limit basierend auf anfragender IP-Adresse. Einfach aber Nutzer hinter NAT (gleiche IP) haben Probleme.
User-basiert: Limit basierend auf authentifiziertem Nutzer. Fairer. Nutzer mit API Key oder JWT identifizieren.
Endpoint-basiert: Verschiedenes Limit für jeden Endpoint. /login (5/min) vs /users (100/min).
Tiered: Verschiedene Limits für verschiedene Nutzertypen. Free (100/min), Pro (1000/min), Enterprise (10000/min).
Global vs per-Endpoint: Global Limit (für alle API) + per-Endpoint Limit. Beide zusammen verwenden.
Implementierung
Redis: Rate Limit Zähler in Redis speichern. Atomischer Zähler mit INCR und EXPIRE Befehlen. Ideal für Distributed Rate Limiting.
Middleware: Express.js (express-rate-limit), Django (django-ratelimit), Spring Boot (Bucket4j) Middleware.
API Gateway: Rate Limiting mit Kong, AWS API Gateway, Cloudflare. Zentrale Verwaltung und Monitoring.
Response Headers: Limit-Info mit X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset Header zurückgeben.
Client SDK: Client-Bibliotheken lesen Rate Limit Info und führen automatisch Retry und Backoff durch.
DDoS-Schutz
Rate Limiting allein bietet keinen DDoS-Schutz. DDoS-Angriffe kommen in Volumen, die Rate Limit überschreiten.
Cloudflare: DDoS-Schutz, WAF (Web Application Firewall), Bot-Management. Kostenloser Tier verfügbar.
AWS Shield: DDoS-Schutz für AWS-Services. Standard (kostenlos) und Advanced (kostenpflichtig).
IP Reputation: IPs mit schlechtem Ruf blockieren. Reputation-Listen wie Spamhaus, AbuseIPDB verwenden.
CAPTCHA: Verdächtigen Traffic mit CAPTCHA verifizieren. reCAPTCHA v3 (invisible) oder hCaptcha.
Geo-Blocking: Traffic aus bestimmten Ländern blockieren (falls nötig).
Best Practices
Graceful Degradation: Klare Fehlermeldung an Nutzer geben, wenn Rate Limit überschritten. Mit Retry-After Header angeben, wann erneut versucht werden soll.
Monitoring: Rate Limit Hits überwachen. Anormaler Anstieg kann Angriff oder Bug sein.
Whitelist: Vertrauenswürdige IPs (interne Services, Partner APIs) auf Whitelist setzen.
Dokumentation: Rate Limit Policy in API-Dokumentation klar angeben. Limit, Window und Retry Info.
Testing: Rate Limit Verhalten mit Load Testing testen. k6, Artillery oder JMeter verwenden.
Passende Werkzeuge
Schritt-für-Schritt-Anleitungen
Praxisartikel zu diesem Thema
HTTP-Caching und CDN: Cache-Strategien für Web-Performance
HTTP-Caching und CDN (Content Delivery Network) verbessern die Web-Performance dramatisch.
Technische SEO Checkliste: Seitenoptimierung und Indexierung
Technische SEO umfasst die technischen Faktoren, die die Fähigkeit von Suchmaschinen beeinflussen, Ihre Seite zu crawlen, zu…