Cloudflare Workers
Ein Worker vor Ihrer Website prüft jeden Besucher und meldet Ihrem Ursprungsserver das Ergebnis.
Einrichtung
Oder nutzen Sie den Button oben.
git clone https://github.com/ipscanner/ipscanner-cloudflare
cd ipscanner-cloudflare
npm install
npx wrangler deploynpx wrangler secret put IPSCANNER_API_KEYAuf einer eigenen Domain oder workers.dev setzen Sie stattdessen ORIGIN_URL auf Ihr Backend.
"routes": [{
"pattern": "example.com/*",
"zone_name": "example.com"
}]So funktioniert es
Der Worker liest IP, User-Agent und JA4 des Besuchers, sofern Cloudflare JA4 liefert.
Agentscan und IP Detection laufen parallel, mit Cache pro Besucher, und lassen die Anfrage nach 1,5 Sekunden durch.
Im Monitor-Modus gehen Urteils-Header an Ihren Ursprungsserver. Im Enforce-Modus bekommen blockierte Besucher zusätzlich ein 403.
Verifizierte Crawler kommen immer durch, und vom Client gesendete X-IPScanner-*-Header werden entfernt.
Header
Schlägt eine Prüfung fehl oder wird sie übersprungen, ist nur X-IPScanner-Status gesetzt.
| Header | Quelle | Beispiel |
|---|---|---|
| X-IPScanner-ClassAgentscan | Agentscan | human |
| X-IPScanner-ActionAgentscan | Agentscan | allow |
| X-IPScanner-ConfidenceAgentscan | Agentscan | 0.92 |
| X-IPScanner-Network-ClassIP Detection | IP Detection | residential_clean |
| X-IPScanner-AnonymizedBeide | Beide | false |
| X-IPScanner-RiskIP Detection | IP Detection | 12 |
| X-IPScanner-CountryIP Detection | IP Detection | DE |
| X-IPScanner-StatusWorker | Worker | ok |
Einstellungen
Legen Sie diese im vars-Block von wrangler.jsonc fest.
| Variable | Standard | Wirkung |
|---|---|---|
| MODEmonitor setzt Header, enforce blockiert zusätzlich | monitor | monitor setzt Header, enforce blockiert zusätzlich |
| CHECK_AGENTFührt Agentscan aus | true | Führt Agentscan aus |
| CHECK_IPFührt IP Detection aus | true | Führt IP Detection aus |
| BLOCK_CLASSESAgentscan-Klassen, die im Enforce-Modus blockiert werden | malicious_automation | Agentscan-Klassen, die im Enforce-Modus blockiert werden |
| BLOCK_ANONYMIZEDBlockiert im Enforce-Modus auch VPN, Proxy und Tor | false | Blockiert im Enforce-Modus auch VPN, Proxy und Tor |
| TIMEOUT_MSPro Aufruf, danach geht die Anfrage durch | 1500 | Pro Aufruf, danach geht die Anfrage durch |
| AGENT_TTLSekunden, die ein Agentscan-Urteil im Cache bleibt | 600 | Sekunden, die ein Agentscan-Urteil im Cache bleibt |
| IP_TTLSekunden, die ein IP-Lookup im Cache bleibt | 3600 | Sekunden, die ein IP-Lookup im Cache bleibt |
| SKIP_PATHSPfad-Regex, bei der die Prüfung entfällt | Statische Assets | Pfad-Regex, bei der die Prüfung entfällt |
| ORIGIN_URLBackend als Ziel, wenn keine Route greift | Leer | Backend als Ziel, wenn keine Route greift |
Fragen
Beobachten Sie die Header eine Woche lang, bevor Sie etwas blockieren.