Rate-Limiting ist ein Sicherheitsmechanismus, der die Anzahl von Anfragen pro Zeiteinheit einschränkt, die ein Nutzer oder System an einen Server stellen darf. Ziel ist es, Missbrauch, Überlastung oder Angriffe (z. B. DDoS) zu verhindern und die Stabilität von Diensten sicherzustellen.
Wie funktioniert Rate-Limiting?
- Ein Server zählt, wie viele Anfragen eine bestimmte IP-Adresse oder ein Nutzer innerhalb eines definierten Zeitfensters stellt
- Wird ein Limit (z. B. 100 Anfragen pro Minute) überschritten, werden weitere Anfragen blockiert oder verzögert
- Oft kombiniert mit Rückmeldungen wie
HTTP 429 – Too Many Requests
Typische Einsatzbereiche
- APIs: Schutz vor exzessiven automatisierten Zugriffen
- Login-Formulare: Schutz vor Brute-Force-Angriffen
- Kommentar- oder Nachrichtensysteme: Vermeidung von Spam
- Webserver allgemein: Lastverteilung und Verhinderung von Überlast
Methoden des Rate-Limitings
- Fixed Window: Zählt Anfragen in festen Zeitblöcken (z. B. pro Minute)
- Sliding Window: Gleitende Zählung über einen kontinuierlichen Zeitraum
- Token Bucket / Leaky Bucket: Algorithmen zur flexiblen und gleichmäßigen Verteilung
Vorteile
- Schützt Ressourcen vor Überlastung
- Erhöht die Systemsicherheit
- Verhindert Missbrauch durch Bots oder Angreifer
Nachteile / Herausforderungen
- Falsch konfigurierte Limits können legitime Nutzer behindern
- Angreifer könnten versuchen, die Regeln zu umgehen (z. B. durch verteilte IPs)