📝 BLOG

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:

Erstellt von: Gsetsoft

API Rate Limiting: Throttling, Quota und DDoS-Schutz

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

Ihre Datenschutzwahl

Notwendige Cookies dienen Sicherheit und Sitzungen. Grundlegende Besuche werden gezählt; mit Ihrer Zustimmung aktivieren wir zusätzliche Nutzungsanalysen. Cookie-Richtlinie