Cloudflare Workers
Eén Worker vóór je site checkt elke bezoeker en vertelt je originserver wat hij vond.
Installatie
Of gebruik de Deploy-knop hierboven.
git clone https://github.com/ipscanner/ipscanner-cloudflare
cd ipscanner-cloudflare
npm install
npx wrangler deploynpx wrangler secret put IPSCANNER_API_KEYOp een eigen domein of workers.dev zet je ORIGIN_URL in plaats daarvan op je backend.
"routes": [{
"pattern": "example.com/*",
"zone_name": "example.com"
}]Zo werkt het
De Worker leest het IP, de User-Agent en JA4 van de bezoeker, als Cloudflare JA4 levert.
Agentscan en IP Detection draaien parallel, met cache per bezoeker, en laten het verzoek na 1,5 seconde door.
In monitor-modus gaan oordeel-headers naar je originserver. In enforce-modus krijgt een geblokkeerde bezoeker ook een 403.
Geverifieerde crawlers komen altijd door, en X-IPScanner-*-headers die de client meestuurt, worden verwijderd.
Headers
Als een check mislukt of wordt overgeslagen, is alleen X-IPScanner-Status gezet.
| Header | Bron | Voorbeeld |
|---|---|---|
| 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 |
Instellingen
Stel deze in via het vars-blok van wrangler.jsonc.
| Variabele | Standaard | Wat het doet |
|---|---|---|
| MODEmonitor zet headers, enforce blokkeert ook | monitor | monitor zet headers, enforce blokkeert ook |
| CHECK_AGENTVoert Agentscan uit | true | Voert Agentscan uit |
| CHECK_IPVoert IP Detection uit | true | Voert IP Detection uit |
| BLOCK_CLASSESAgentscan-klassen die enforce-modus blokkeert | malicious_automation | Agentscan-klassen die enforce-modus blokkeert |
| BLOCK_ANONYMIZEDBlokkeert in enforce-modus ook VPN, proxy en Tor | false | Blokkeert in enforce-modus ook VPN, proxy en Tor |
| TIMEOUT_MSPer aanroep, daarna gaat het verzoek door | 1500 | Per aanroep, daarna gaat het verzoek door |
| AGENT_TTLSeconden dat een Agentscan-oordeel in de cache blijft | 600 | Seconden dat een Agentscan-oordeel in de cache blijft |
| IP_TTLSeconden dat een IP-lookup in de cache blijft | 3600 | Seconden dat een IP-lookup in de cache blijft |
| SKIP_PATHSPad-regex die de check overslaat | Statische assets | Pad-regex die de check overslaat |
| ORIGIN_URLBackend om naar door te sturen zonder route | Leeg | Backend om naar door te sturen zonder route |
Vragen
Bekijk de headers een week voordat je iets blokkeert.