Cloudflare Workers

Bot- und VPN-Prüfung in einem Cloudflare Worker

Ein Worker vor Ihrer Website prüft jeden Besucher und meldet Ihrem Ursprungsserver das Ergebnis.

Einrichtung

In drei Schritten live

  1. 1

    Worker bereitstellen

    Oder nutzen Sie den Button oben.

    shell
    git clone https://github.com/ipscanner/ipscanner-cloudflare
    cd ipscanner-cloudflare
    npm install
    npx wrangler deploy
  2. 2

    API-Schlüssel hinzufügen

    shell
    npx wrangler secret put IPSCANNER_API_KEY
  3. 3

    Vor Ihre Website schalten

    Auf einer eigenen Domain oder workers.dev setzen Sie stattdessen ORIGIN_URL auf Ihr Backend.

    wrangler.jsonc
    "routes": [{
      "pattern": "example.com/*",
      "zone_name": "example.com"
    }]

So funktioniert es

Was bei jeder Anfrage passiert

  1. 1

    Der Worker liest IP, User-Agent und JA4 des Besuchers, sofern Cloudflare JA4 liefert.

  2. 2

    Agentscan und IP Detection laufen parallel, mit Cache pro Besucher, und lassen die Anfrage nach 1,5 Sekunden durch.

  3. 3

    Im Monitor-Modus gehen Urteils-Header an Ihren Ursprungsserver. Im Enforce-Modus bekommen blockierte Besucher zusätzlich ein 403.

  4. 4

    Verifizierte Crawler kommen immer durch, und vom Client gesendete X-IPScanner-*-Header werden entfernt.

Header

Header, die Ihr Ursprungsserver erhält

Schlägt eine Prüfung fehl oder wird sie übersprungen, ist nur X-IPScanner-Status gesetzt.

HeaderBeispiel
X-IPScanner-ClassAgentscanhuman
X-IPScanner-ActionAgentscanallow
X-IPScanner-ConfidenceAgentscan0.92
X-IPScanner-Network-ClassIP Detectionresidential_clean
X-IPScanner-AnonymizedBeidefalse
X-IPScanner-RiskIP Detection12
X-IPScanner-CountryIP DetectionDE
X-IPScanner-StatusWorkerok

Einstellungen

Einstellungen

Legen Sie diese im vars-Block von wrangler.jsonc fest.

VariableStandard
MODEmonitor setzt Header, enforce blockiert zusätzlichmonitor
CHECK_AGENTFührt Agentscan austrue
CHECK_IPFührt IP Detection austrue
BLOCK_CLASSESAgentscan-Klassen, die im Enforce-Modus blockiert werdenmalicious_automation
BLOCK_ANONYMIZEDBlockiert im Enforce-Modus auch VPN, Proxy und Torfalse
TIMEOUT_MSPro Aufruf, danach geht die Anfrage durch1500
AGENT_TTLSekunden, die ein Agentscan-Urteil im Cache bleibt600
IP_TTLSekunden, die ein IP-Lookup im Cache bleibt3600
SKIP_PATHSPfad-Regex, bei der die Prüfung entfälltStatische Assets
ORIGIN_URLBackend als Ziel, wenn keine Route greiftLeer

Fragen

FAQ zum Cloudflare Worker

Eine Anfrage pro aktiver Prüfung und nicht gecachtem Besucher, mit beiden Prüfungen also zwei. Wiederholte Besuche innerhalb der Cache-TTL kosten nichts.

Starten Sie im Monitor-Modus

Beobachten Sie die Header eine Woche lang, bevor Sie etwas blockieren.