Jede öffentlich erreichbare Anwendung wird irgendwann mit mehr Anfragen konfrontiert, als sie verarbeiten soll: durch Angriffe, fehlerhafte Integrationen, übereifrige Skripte oder schlicht durch Erfolg. Rate Limiting legt fest, wie viel zu viel ist.
Wofür es gebraucht wird
Gegen Brute-Force-Angriffe auf Anmeldung und Passwort-Rücksetzung. Gegen das massenhafte Auslesen von Daten über APIs. Gegen Überlast, die alle Nutzer trifft. Und zunehmend gegen Kosten: Eine KI-Funktion ohne Begrenzung kann in kurzer Zeit erhebliche Rechnungen erzeugen, weil jeder Aufruf Tokens kostet.
Algorithmen
Beim Fixed Window werden Anfragen pro festem Zeitfenster gezählt — einfach, aber anfällig für Spitzen am Fenstergrenze. Das Sliding Window glättet diesen Effekt. Der Token Bucket füllt ein Guthaben in festem Takt auf und erlaubt kurze Spitzen bis zur Grösse des Eimers, was dem tatsächlichen Nutzungsverhalten oft am nächsten kommt. Für die meisten Anwendungen ist die Wahl weniger wichtig als die konsequente Anwendung an den richtigen Stellen.
Grenzen pro Schlüssel
Worauf sich eine Grenze bezieht, entscheidet über ihre Wirkung. Pro IP-Adresse schützt vor anonymen Angriffen, trifft aber Nutzer hinter derselben Firmen-IP gemeinsam. Pro Nutzer oder API-Schlüssel ist fairer für eingeloggte Nutzung. Pro Mandant passt zu Kontingenten nach Plan. Oft braucht es eine Kombination: eine grobe Grenze am Rand der Infrastruktur und feinere Grenzen in der Anwendung.
Die Antwort an den Client
Überschrittene Grenzen werden mit dem HTTP-Status 429 Too Many Requests beantwortet, idealerweise mit einem Retry-After-Header, der angibt, wann es wieder geht. Für API-Kunden sind Header mit dem verbleibenden Kontingent hilfreich. Clients sollten auf 429 mit exponentiellem Zurückweichen reagieren statt mit sofortigen Wiederholungen.
Wo es hingehört
Mindestens auf Anmeldung, Registrierung, Passwort-Rücksetzung, öffentliche APIs, Formulare und teure Funktionen wie KI-Aufrufe, Exporte und Berichte. Rate Limiting gehört deshalb in jede Sicherheits-Checkliste vor dem SaaS-Go-live und in die Produktionsreife von LLM-Funktionen.
