Rate-Limiting
Quick Definition
Eine Technik zur Kontrolle der Rate von Anfragen, die ein Benutzer an eine Anwendung stellen kann, zum Schutz vor Missbrauch und Brute-Force-Angriffen.
Was ist Rate-Limiting?
Rate-Limiting ist eine Sicherheits- und Ressourcenmanagement-Technik, die kontrolliert, wie viele Anfragen ein Benutzer, eine IP-Adresse oder ein API-Schlüssel innerhalb eines bestimmten Zeitfensters stellen kann. Es ist unerlässlich zur Verhinderung von Missbrauch, zum Schutz gegen Brute-Force-Angriffe und zur Gewährleistung einer fairen Ressourcenverteilung.
Gängige Rate-Limiting-Strategien umfassen:
- Festes Fenster: Einfache Zählung, die in festen Intervallen zurückgesetzt wird (z.B. 100 Anfragen pro Minute)
- Gleitendes Fenster: Rollendes Zeitfenster für genauere Begrenzung
- Token Bucket: Erlaubt Bursts bei Beibehaltung der durchschnittlichen Rate
- Leaky Bucket: Verarbeitet Anfragen mit einer festen Rate, überschüssige werden in die Warteschlange gestellt
Rate-Limiting kann angewendet werden basierend auf:
- IP-Adresse
- Benutzerkonto oder API-Schlüssel
- Endpunkt oder URL-Pfad
- Anfrageattributen (Header, Cookies)
Beispiele
Ein Login-Endpunkt könnte ein Rate-Limit von 5 Versuchen pro Minute pro IP-Adresse haben. Nach 5 fehlgeschlagenen Anmeldeversuchen werden weitere Anfragen für den Rest der Minute blockiert, um Brute-Force-Passwortangriffe zu verhindern.
Häufig gestellte Fragen
Welcher HTTP-Statuscode sollte bei Rate-Limiting zurückgegeben werden?
Der Standard-HTTP-Statuscode für Rate-Limiting ist 429 (Too Many Requests). Die Antwort sollte einen Retry-After-Header enthalten, der angibt, wann der Client es erneut versuchen kann. Viele WAFs unterstützen auch benutzerdefinierte Antwortseiten oder Weiterleitungen.