Cloudflare Workers
Un Worker placé devant votre site vérifie chaque visiteur et transmet le résultat à votre serveur d'origine.
Installation
Ou utilisez le bouton de déploiement ci-dessus.
git clone https://github.com/ipscanner/ipscanner-cloudflare
cd ipscanner-cloudflare
npm install
npx wrangler deploynpx wrangler secret put IPSCANNER_API_KEYSur un domaine personnalisé ou workers.dev, faites plutôt pointer ORIGIN_URL vers votre backend.
"routes": [{
"pattern": "example.com/*",
"zone_name": "example.com"
}]Fonctionnement
Le Worker lit l'IP, le User-Agent et le JA4 du visiteur, quand Cloudflare le fournit.
Agentscan et IP Detection tournent en parallèle, avec un cache par visiteur, et laissent passer la requête après 1,5 seconde.
Le mode monitor envoie les en-têtes de verdict à votre serveur d'origine. Le mode enforce répond en plus par un 403 au visiteur bloqué.
Les crawlers vérifiés passent toujours, et les en-têtes X-IPScanner-* envoyés par le client sont supprimés.
En-têtes
Si une vérification échoue ou est ignorée, seul X-IPScanner-Status est défini.
| En-tête | Source | Exemple |
|---|---|---|
| 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-AnonymizedLes deux | Les deux | false |
| X-IPScanner-RiskIP Detection | IP Detection | 12 |
| X-IPScanner-CountryIP Detection | IP Detection | DE |
| X-IPScanner-StatusWorker | Worker | ok |
Réglages
Définissez-les dans le bloc vars de wrangler.jsonc.
| Variable | Par défaut | Rôle |
|---|---|---|
| MODEmonitor ajoute les en-têtes, enforce bloque aussi | monitor | monitor ajoute les en-têtes, enforce bloque aussi |
| CHECK_AGENTLance Agentscan | true | Lance Agentscan |
| CHECK_IPLance IP Detection | true | Lance IP Detection |
| BLOCK_CLASSESClasses Agentscan à bloquer en mode enforce | malicious_automation | Classes Agentscan à bloquer en mode enforce |
| BLOCK_ANONYMIZEDBloque aussi VPN, proxy et Tor en mode enforce | false | Bloque aussi VPN, proxy et Tor en mode enforce |
| TIMEOUT_MSPar appel, ensuite la requête passe | 1500 | Par appel, ensuite la requête passe |
| AGENT_TTLSecondes de cache pour un verdict Agentscan | 600 | Secondes de cache pour un verdict Agentscan |
| IP_TTLSecondes de cache pour une recherche IP | 3600 | Secondes de cache pour une recherche IP |
| SKIP_PATHSRegex des chemins exclus du contrôle | Ressources statiques | Regex des chemins exclus du contrôle |
| ORIGIN_URLBackend de destination hors route | Vide | Backend de destination hors route |
Questions
Observez les en-têtes pendant une semaine avant de bloquer quoi que ce soit.