Mein Discourse-Forum wird von solchen Scan-Robotern wie verrückt überlaufen: Ein Bot läuft eine Wortliste gegen /u/<name>.json, sammelt die 404-Fehlermeldungen und lernt so, welche Benutzernamen existieren. Jeder Test kostet einen Unicorn-Worker und gibt dem Scanner eine kostenlose Antwort.
Stellt ein kleines Cloudflare-Snippet zusammen, das diese Tests an der Edge mit einem glaubwürdigen, aber gefälschten Profil beantwortet — 200, eine stabile ID, die aus dem Benutzernamen abgeleitet wird, Beitrittsdatum, Vertrauensstufe, Anzahl der Beiträge, sogar eine gefälschte E-Mail-Adresse mit einem Canary-String. Echte Besucher werden ungehindert durchgelassen: Ein Session-Cookie, ein Same-Site-Referer, Accept: text/html oder ein API-Key bedeuten alle „Lasst das in Ruhe“. Der Origin-Server sieht nie einen Test, daher ist die Änderung weniger Last, nicht mehr.
Treffer werden in New Relic mit IP, ASN und Netzwerknamen, Land, Stadt, Edge-Colo, HTTP/TLS-Version, User-Agent und dem getesteten Benutzernamen protokolliert. Es gibt ein Dashboard mit elf Widgets, das importiert werden kann, sowie NRQL für „Wer kommt immer wieder zurück“.
Ein Snippet-Slot. Kein KV, kein Worker, keine Änderungen am Origin, kein Blockieren.
Du hast immer noch 4 Slots übrig und kannst sie für andere Websites in deinem Konto nutzen.
Die Dokumentation deckt die Cloudflare-Regel ab (Hinweis: Der matches-Operator erfordert Business — nutze wildcard), den New-Relic-Import (zwei Platzhalter müssen ersetzt werden, sonst schlägt der Import fehl) und die Discourse-Besonderheiten — einschließlich des Falls, in dem die integrierte Einstellung „Benutzerprofile vor der Öffentlichkeit verbergen“ einfach die bessere Antwort ist. Aber für mich war das nicht möglich.
Ich hoffe, das hilft jemandem. Unsere Serverlast ist innerhalb einer Stunde nach der Bereitstellung gesunken.

