Benutzernamen-Verfügbarkeit prüfen bei Registrierung festgefahren

Beim Versuch, sich auf der Website https://it6.cc/ zu registrieren, bleibt die Überprüfung der Verfügbarkeit des Benutzernamens hängen. Die Meldung „Überprüfung der Verfügbarkeit des Benutzernamens…“ wird angezeigt und bleibt über einen längeren Zeitraum bestehen, was eine normale Registrierung verhindert.


Ich habe die Ursache des Problems gefunden, da die Cloudflare WAF-Regel,
die ursprüngliche Regel

(cf.threat_score ge 5 and not cf.client.bot) or (not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}) or (not http.user_agent contains "Mozilla/")

Hier ist die Optimierungsregel von Claude AI, die das Problem löst

(cf.threat_score ge 10 and not cf.client.bot) or
(http.request.version eq "HTTP/1.0") or
(not http.user_agent contains "Mozilla/" and not cf.client.bot)
Erläuterung der Änderungen

Analyse und Optimierung von Cloudflare-Firewallregeln

Aktuelle Regel:

Kopieren

(cf.threat_score ge 5 and not cf.client.bot) or
(not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}) or
(not http.user_agent contains "Mozilla/")

Analyse:

  1. cf.threat_score ge 5 and not cf.client.bot: Dieser Teil ist vernünftig und blockiert Clients mit hoher Bedrohung, die keine Bots sind.
  2. not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}: Dies könnte zu restriktiv sein und legitime ältere Clients blockieren.
  3. not http.user_agent contains "Mozilla/": Dies könnte legitime Anfragen von Nicht-Browser-Clients oder API-Aufrufe blockieren.

Optimierte Regel:

Kopieren

(cf.threat_score ge 10 and not cf.client.bot) or
(http.request.version eq "HTTP/1.0") or
(not http.user_agent contains "Mozilla/" and not cf.client.bot)

Erläuterung der Änderungen:

  1. Der Schwellenwert für die Bedrohungsbewertung wurde auf 10 erhöht, um mehr legitimen Datenverkehr zuzulassen.
  2. Blockiert nur HTTP/1.0 und erlaubt neuere Versionen und SPDY.
  3. Die Überprüfung der User-Agent-Zeichenfolge wurde so geändert, dass sie nur für Nicht-Bot-Datenverkehr gilt, was API-Aufrufe und legitime Nicht-Browser-Clients zulässt.

Zusätzliche Überlegungen:

  • Fügen Sie Ausnahmen für bestimmte Pfade oder Endpunkte hinzu, die für die Überprüfung von Benutzernamen verwendet werden:

Kopieren

and not (http.request.uri.path contains "/check_username")
  • Whitelist bekannte gute IP-Bereiche oder Länder, in denen sich die meisten Ihrer Benutzer befinden.
  • Erwägen Sie die Implementierung von Ratenbegrenzungen anstelle von vollständigen Blockierungen für einige Bedingungen.

Implementierung:

Ersetzen Sie Ihre aktuelle Regel durch die optimierte Version und überwachen Sie deren Auswirkungen. Passen Sie sie nach Bedarf basierend auf Ihren Datenverkehrsmustern und Sicherheitsanforderungen an.

1 „Gefällt mir“