Cloudflare Rate Limiting - So schützt du deinen Webserver richtig

Cloudflare schützt vor Angriffen durch DDoS-Mitigation, Caching und Rate Limiting. Legitime Anfragen passieren, böswilliger Traffic wird blockiert.

Geschrieben von

Thilo Arndt

Veröffentlicht am

4. Juni 2026

Inhaltsverzeichnis

Rate Limiting schützt Webserver nicht nur vor offensichtlichem Missbrauch, sondern auch vor den kleinen Spitzen, die Login-Seiten, APIs oder Download-Endpunkte langsam und teuer machen. Bei Cloudflare geht es dabei um mehr als eine einfache Sperre: Entscheidend sind die richtige Erkennungsregel, die passende Kennzahl pro Client und ein Zeitfenster, das echte Nutzer nicht unnötig ausbremst. In diesem Artikel zeige ich, wie man solche Regeln sinnvoll aufsetzt, welche Werte in der Praxis taugen und wo die Grenzen dieser Schutzschicht liegen.

Die wichtigsten Punkte auf einen Blick

  • Cloudflare bewertet nur den Traffic, der zu einer klaren Regel passt, und zählt ihn über definierte Merkmale wie IP, Cookie, Header oder Pfad.
  • Ein Limit ist nur dann brauchbar, wenn es zum Anwendungsfall passt, etwa Login, REST-API, Datei-Download oder GraphQL.
  • Ich würde Regeln zuerst im Log-Modus testen, dann erst auf Challenge oder Block schalten.
  • Die Zähler sind nicht global, sondern an Rechenzentren gebunden. Für exakte Grenzen ist das wichtig.
  • Der größte Fehler ist fast immer ein falscher Zählwert, nicht die eigentliche Sperre.
  • Für gute Ergebnisse braucht es meist Rate Limiting plus WAF-Regeln, Bot-Schutz und saubere Ausnahmen.

Was die Rate-Limiting-Funktion bei Cloudflare tatsächlich macht

Die Idee ist einfach: Ein Client darf nur so viele Requests in einem definierten Zeitraum schicken, wie du vorher festgelegt hast. Cloudflare vergleicht dafür eingehende Requests mit einer Regel, zählt sie über bestimmte Merkmale hinweg und greift erst ein, wenn der Schwellenwert erreicht ist. Je nach Konfiguration kann die Reaktion ein Log, eine Challenge oder ein Block sein.

Für den Alltag eines Webservers ist das wertvoll, weil du damit sehr gezielt auf Missbrauch reagieren kannst. Ein Login-Endpoint braucht andere Grenzen als ein Produktkatalog oder eine GraphQL-API. Genau deshalb ist Rate Limiting bei Cloudflare keine pauschale Sicherheitskeule, sondern eher ein fein einstellbares Ventil. Und das bringt uns direkt zur Frage, wie Cloudflare überhaupt entscheidet, ob zwei Requests zusammengehören.

Wie Cloudflare Requests zusammenzählt und warum das wichtig ist

Cloudflare zählt nicht einfach blind jede Anfrage hoch. Die Zuordnung läuft über Characteristics, also Merkmale, nach denen der Traffic gruppiert wird. Das kann die IP sein, ein Cookie, ein Header wie ein API-Key, der Pfad, ein Länderfilter oder bei anspruchsvolleren Setups auch ein Fingerprint wie JA3 oder JA4. Bei Enterprise-Tarifen und Advanced Rate Limiting kommen weitere Optionen dazu, zum Beispiel komplexitätsbasierte Regeln für teure Requests.

Wichtig ist dabei ein Punkt, den viele übersehen: Die Zähler sind nicht global über das gesamte Cloudflare-Netz. Sie werden pro Rechenzentrum geführt, mit Ausnahmen innerhalb derselben geografischen Region. Das heißt in der Praxis: Eine Regel kann sehr gut schützen, aber sie ist keine mathematisch perfekte Garantie dafür, dass exakt nur X Requests bis zum Origin gelangen. Für harte Kapazitätsgrenzen solltest du das mit einkalkulieren.

Ich trenne in der Praxis außerdem zwischen dem, was gezählt wird, und dem, woran ich einen Client erkenne. Für ein öffentliches Login ist IP oft ein guter Startpunkt. Für eine API mit Token ist ein Header oder API-Key meist stabiler. Bei gemeinsam genutzten Netzen, mobilen Carriern oder NAT ist eine reine IP-Logik dagegen schnell zu grob. Deshalb lohnt sich der Blick auf die Zählmerkmale besonders, bevor überhaupt die erste Regel live geht.

Merkmal Wann ich es nutze Worauf ich achte
IP Öffentliche Endpunkte, einfache Schutzfälle, erste Schutzstufe Kann bei NAT, Mobilfunk oder Firmennetzen zu Fehlalarmen führen
Cookie oder Session Authentifizierte Nutzer, wiederkehrende Clients, App-Sessions Funktioniert nur sauber, wenn der Client wirklich ein stabiles Cookie hat
Header wie API-Key REST-APIs, Partnerzugänge, Maschinen-zu-Maschinen-Traffic Headernamen müssen konsistent sein, sonst entstehen Lücken
Pfad Dateidownloads, einzelne Endpunkte, spezielle Aktionen Nur sinnvoll, wenn der Pfad das eigentliche Ziel der Belastung ist
JA3 oder JA4 Botnahe Muster, erweiterte Schutzszenarien Stärker, aber nur mit passender Produktstufe und sauberer Analyse

Mit diesem Modell im Kopf wird die eigentliche Einrichtung deutlich einfacher, denn die nächste Frage lautet: Welche Regel greift, und wie wird sie in Cloudflare sinnvoll angelegt?

Cloudflare-Dashboard zeigt Optionen für

So richte ich eine Regel im Dashboard sauber ein

Im Dashboard läuft der Prozess recht geradlinig ab: Du gehst zu den Security Rules, legst eine Rate-Limiting-Regel an, definierst die Filterexpression, wählst die Characteristics, setzt das Zeitfenster und bestimmst die Aktion. Technisch ist das schnell angeklickt. Die eigentliche Arbeit steckt in der Auswahl der richtigen Filter und in einer vernünftigen Teststrategie.

Mein Standardvorgehen sieht so aus:

  1. Ich grenze den betroffenen Endpunkt so eng wie möglich ein, zum Beispiel nur /login oder nur eine bestimmte API-Route.
  2. Ich wähle die Kennzahl für den Client, meistens IP, API-Key, Cookie oder Pfad.
  3. Ich starte mit Log, nicht mit Block.
  4. Ich prüfe, ob die Regel zu viele legitime Nutzer trifft.
  5. Erst danach schalte ich auf Challenge oder Block um.

Bei den Aktionen arbeite ich sehr bewusst gestaffelt. Log ist der sichere Start, weil ich damit sehe, wie die Regel wirklich wirkt. Managed Challenge ist oft ein guter Mittelweg, wenn ich legitime Nutzer nicht hart aussperren will. Block setze ich erst dann ein, wenn ich das Muster verstanden habe. Für Enterprise-Setups gibt es zusätzlich die Option, Requests über dem Limit zu drosseln statt nur hart zu blockieren, was bei APIs manchmal die elegantere Lösung ist.

Aktion Wann ich sie nehme Stärke Risiko
Log Zum Testen und Tuning Keine direkte Sperre, aber volle Sichtbarkeit Schützt noch nicht aktiv
Managed Challenge Wenn ich zwischen Mensch und Bot unterscheiden will Sehr brauchbar gegen automatisierte Versuche Kann einzelne Nutzer irritieren
Block Bei klaren Missbrauchsmustern Hart und eindeutig Fehlkonfiguration trifft sofort echte Nutzer
Throttle Wenn ich Überlast bremsen, aber nicht alles stoppen will Guter Kompromiss für APIs Verfügbar nicht in jedem Tarif

Gerade im Dashboard ist außerdem die Option wichtig, Rate Limiting auf cached assets anzuwenden oder eben nicht. Wenn du nur Requests zählen willst, die tatsächlich zum Origin gehen, solltest du das bewusst prüfen. Sonst misst du am Ende an einer Stelle, die mit dem eigentlichen Serveraufwand nur indirekt zu tun hat. Die technische Einrichtung ist damit erst der halbe Job, denn die Qualität der Schwelle entscheidet über Erfolg oder Frust.

Welche Schwellen und Zeitfenster in der Praxis sinnvoll sind

Die wichtigste Regel aus der Praxis ist banal, aber entscheidend: Ich behandle Startwerte nie als Endwerte. Ein gutes Limit ergibt sich aus echtem Traffic, nicht aus einem Bauchgefühl. Für Login- und Verifikationsendpunkte will ich eher kurze Fenster und niedrige Schwellen, bei APIs brauche ich meist eine feinere Zuordnung pro Schlüssel oder Session, und bei Downloads oder GraphQL ist die Kostenlast pro Request wichtiger als die reine Menge.

Als grobe Orientierung nutze ich gern diese Startpunkte:

Szenario Solider Startwert Warum das sinnvoll ist
Login-Formular 4 bis 10 Versuche pro Minute pro IP Schützt gegen Brute Force, lässt menschliche Fehlversuche aber noch zu
OTP- oder Verifikationsseite 5 fehlgeschlagene Versuche pro Minute Codes werden schnell erraten, deshalb muss das Fenster eng sein
REST-API mit Authentifizierung Pro API-Key und Endpunkt anhand von Analysen festlegen Fairer als eine reine IP-Grenze, vor allem bei NAT oder gemeinsam genutzten Netzen
Dateidownloads 10 Downloads pro 10 Minuten pro Pfad und Client Verhindert Bandbreitenmissbrauch, ohne den Zugriff unbrauchbar zu machen
GraphQL Operationen oder Complexity-Budget pro Stunde Eine einzelne Anfrage kann viel teurer sein als zehn einfache Reads

Besonders hilfreich ist die Analyse über echte Nutzungsdaten. Cloudflare bietet dafür eine Request-Rate-Ansicht, mit der du die Verteilung des Traffics prüfen kannst. Ich würde eine Regel immer zuerst im Log-Modus ausrollen und dann beobachten, wie viele Nutzer sie wirklich treffen würde. So erkenne ich früh, ob ich einen Ausreißer blockiere oder versehentlich den Durchschnitt.

Für Login-Strecken funktioniert oft ein gestaffeltes Modell am besten: erst eine milde Challenge, dann eine deutlich längere Sperre. Bei API-Last oder Ressourcenschutz ist eher eine saubere, konstante Drosselung sinnvoll. Damit ist die Frage nach den Zahlen beantwortet, aber noch nicht die nach den konkreten Einsatzfällen auf einem Webserver.

Wofür sich Rate Limiting auf Webservern besonders gut eignet

In der Praxis sehe ich immer wieder dieselben drei Hochrisikozonen: Authentifizierung, teure API-Aufrufe und Ressourcen mit hohem Abrufvolumen. Genau dort liefert die Technik den größten Nutzen. Sie ersetzt keine WAF und keinen Bot-Schutz, aber sie verhindert sehr oft, dass ein einzelner Client das System aus dem Takt bringt.

Login und Kontoschutz

Für Login-Seiten ist die Schutzwirkung am offensichtlichsten. Credential Stuffing lebt davon, dass Angreifer viele Anmeldeversuche automatisiert absetzen. Wenn ich die Regel auf Fehlversuche, also zum Beispiel 401 oder 403, aufbaue, treffe ich genau den Teil des Traffics, der problematisch ist. Das ist sauberer als eine reine Gesamtzählung, weil normale Nutzer mit einem falschen Passwort nicht sofort abgestraft werden müssen.

REST-APIs und Download-Endpunkte

Bei REST-APIs zählt für mich vor allem Fairness pro Kunde oder Schlüssel. Ein API-Key ist hier meist die bessere Identität als eine IP. Für Dateidownloads ist der Pfad oft das richtige Merkmal, weil ich nicht für jede einzelne Datei eine neue Regel schreiben will. Gerade bei größeren Beständen ist das der Unterschied zwischen sauberem Betrieb und Regel-Chaos.

Lesen Sie auch: Nginx Proxy Manager 502 - Bad Gateway schnell beheben

GraphQL und teure Operationen

GraphQL ist ein Sonderfall, weil viele Operationen über einen einzigen Endpoint laufen. Eine Anfrage kann extrem leicht oder sehr teuer sein. Deshalb halte ich reine Request-Zahlen dort für zu grob. Besser ist ein Modell, das die Anzahl der Operationen oder sogar deren Komplexität bewertet. Cloudflare unterstützt dafür entsprechende Ansätze, solange die Origin-Seite die nötigen Scores oder Header liefert. Das ist technisch etwas aufwendiger, aber in modernen APIs oft die sauberste Variante.

Der eigentliche Mehrwert liegt also nicht in der Sperre selbst, sondern darin, die Schutzregel an das Verhalten des Endpunkts anzupassen. Und genau da passieren die meisten Fehler, wenn man zu schnell zu allgemein denkt.

Welche Fehler ich bei Cloudflare immer wieder sehe

Die häufigste Schwachstelle ist nicht der Dienst, sondern die Modellierung. Viele Regeln sind zu breit, zu früh scharf geschaltet oder auf die falsche Identität gebaut. Das führt zu unnötigen Sperren, unsauberen Metriken und am Ende zu Vertrauensverlust im Betrieb.

  • Nur nach IP zu zählen, obwohl der Traffic über NAT oder Mobilfunk kommt.
  • Eine Regel auf den falschen Pfad zu legen, etwa /validate/otp statt /api/otp/validate.
  • Ohne Log-Phase direkt auf Block zu gehen.
  • Cached Assets mitzuzählen, obwohl nur Origin-Last relevant ist.
  • Zu erwarten, dass ein Limit millimetergenau jede einzelne Anfrage abfängt.
  • Verified Bots oder wichtige Integrationen mitzuerfassen, ohne Ausnahmen zu definieren.

Auch die Reihenfolge der Regeln spielt eine Rolle. Wenn eine härtere Regel zuerst greift, kann sie andere Prüfungen praktisch aushebeln. Dazu kommt, dass die Zähler in der Praxis mit leichter Verzögerung aktualisiert werden können. Wer auf exakte, mathematisch perfekte Durchsetzung setzt, wird enttäuscht. Wer dagegen mit vernünftigen Reserven plant, bekommt ein robustes Ergebnis.

Ein weiterer Punkt, den ich ernst nehme, ist die Suchmaschinen- und Bot-Seite. Wenn du versehentlich legitime, verifizierte Bots zu hart einschränkst, kann das SEO oder Integrationen beeinträchtigen. Deshalb ist es klug, zuerst das Muster zu verstehen und erst dann strikt zu werden. Von hier ist der nächste Schritt naheliegend: die Regel nicht isoliert zu betrachten, sondern in eine Schutzkette einzubauen.

Wie ich Rate Limiting mit WAF, Bot-Schutz und Ausnahmen kombiniere

Allein ist die Funktion nützlich, zusammen mit anderen Schutzschichten wird sie stark. Ich verwende sie gern als zweite oder dritte Linie, nicht als einzige. Vorne stehen klare WAF-Regeln für offensichtliche Muster, danach Rate Limiting für wiederholte Missbrauchsversuche und je nach Setup Bot-Management oder Challenges für verdächtige, aber nicht eindeutig bösartige Clients.

In der Praxis sieht die Reihenfolge oft so aus:

  1. Bekannte schlechte Muster direkt per WAF-Regel aussortieren.
  2. Sensible Endpunkte mit Rate Limiting absichern.
  3. Bei auffälligem Verhalten eine Challenge statt eines harten Blocks einsetzen.
  4. Für APIs, die mit Token, JWT oder speziellen Headern arbeiten, die Kennzahl genau auf diesen Identifikator ausrichten.
  5. Interne Systeme, Monitoring, CI/CD oder Admin-Zugriffe bewusst ausnehmen.

Das ist auch der Punkt, an dem ich Ausnahmen nie als Nachgedanken behandle. Eine saubere Allowlist für interne IPs, bestimmte ASNs, Admin-Tools oder vertrauenswürdige Integrationen spart später sehr viel Zeit. Wenn du die Regel nur auf Verdacht scharf stellst, wirst du irgendwann deine eigenen Automatismen blockieren. Besser ist ein kontrolliertes Setup mit klarer Zuständigkeit pro Schutzschicht. Damit bleibt nur noch die Frage, worauf ich vor dem Livegang selbst noch einmal prüfend schaue.

Vor dem Livegang prüfe ich immer diese Punkte

  • Passt die Expression wirklich exakt zum betroffenen Endpoint?
  • Ist die gewählte Kennzahl stabil genug für echte Nutzer, Bots und API-Clients?
  • Habe ich die Regel zuerst im Log-Modus getestet?
  • Ist klar, ob cached Assets mitgezählt werden sollen oder nicht?
  • Gibt es saubere Ausnahmen für interne Nutzer, Monitoring und Automatisierung?
  • Weiß ich, welche Reaktion im Ernstfall ausgelöst wird, also Log, Challenge, Block oder Drosselung?

Wenn diese Punkte stimmen, wird aus einer bloßen Schutzfunktion ein belastbares Betriebsmittel. Genau dann verhindert Cloudflare nicht nur Missbrauch, sondern hält auch Lastspitzen, Fehlversuche und automatisierte Zugriffe so in Schach, dass dein Webserver stabil bleibt und echte Nutzer kaum etwas davon merken.

Häufig gestellte Fragen

Rate Limiting schützt Webserver, indem es die Anzahl der Anfragen von einem Client in einem bestimmten Zeitraum begrenzt. Cloudflare zählt Anfragen nach Merkmalen wie IP oder Cookie und reagiert mit Logging, Challenge oder Blockierung, um Missbrauch zu verhindern und Ressourcen zu schonen.

Gehe zu Security Rules, erstelle eine Rate-Limiting-Regel, definiere Filterexpression und Characteristics (z.B. IP, Header). Wähle ein Zeitfenster und die Aktion (Log, Challenge, Block). Beginne immer mit "Log", um die Auswirkungen zu testen, bevor du auf schärfere Maßnahmen umstellst.

Die Schwellenwerte hängen vom Anwendungsfall ab. Für Login-Formulare sind 4-10 Versuche pro Minute pro IP ein guter Start. Bei APIs ist eine Begrenzung pro API-Key fairer. Analysiere echte Nutzungsdaten, um optimale Werte zu finden und Fehlalarme zu vermeiden.

Rate Limiting ist am effektivsten in Kombination mit anderen Schutzschichten wie WAF-Regeln und Bot-Schutz. Es dient als zweite oder dritte Verteidigungslinie, um wiederholten Missbrauch zu stoppen, während die WAF offensichtliche Angriffe abfängt und Bot-Management verdächtigen Traffic handhabt.

Vermeide es, nur nach IP zu zählen (besonders bei NAT), Regeln zu breit zu definieren oder ohne Testphase direkt zu blockieren. Zähle keine Cached Assets mit, wenn nur Origin-Last relevant ist, und schließe wichtige Bots oder interne Systeme nicht versehentlich aus.

Artikel bewerten

Bewertung: 0.00 Stimmenanzahl: 0

Tags:

cloudflare rate limiting cloudflare rate limiting konfigurieren cloudflare rate limiting best practices cloudflare rate limiting fehler vermeiden cloudflare rate limiting für apis cloudflare rate limiting login-schutz

Beitrag teilen

Thilo Arndt

Thilo Arndt

Mein Name ist Thilo Arndt und ich bringe 10 Jahre Erfahrung in den Bereichen IT-Infrastruktur, Web-Technologien und Sicherheit mit. Mein Interesse an diesen Themen begann bereits in meiner Jugend, als ich die Funktionsweise von Computern und Netzwerken erkunden wollte. Diese Neugier hat sich zu einer Leidenschaft entwickelt, die mich dazu motiviert, komplexe technische Konzepte verständlich zu machen und aktuelle Trends in der Branche zu verfolgen. In meinen Beiträgen konzentriere ich mich darauf, nützliche und präzise Informationen zu liefern, die sowohl für Fachleute als auch für Interessierte zugänglich sind. Ich lege großen Wert darauf, Quellen zu überprüfen und Informationen zu vergleichen, um sicherzustellen, dass ich meinen Lesern die bestmöglichen Einblicke gebe. Dabei ist es mir wichtig, schwierige Themen zu vereinfachen und klar zu strukturieren, damit jeder die Herausforderungen und Chancen der digitalen Welt besser verstehen kann.

Kommentar schreiben