Cloudflare Workers
在網站前部署一個 Worker,檢查每位訪客,並將結果告知您的原始伺服器。
快速上手
亦可使用上方的部署按鈕。
git clone https://github.com/ipscanner/ipscanner-cloudflare
cd ipscanner-cloudflare
npm install
npx wrangler deploynpx wrangler secret put IPSCANNER_API_KEY使用自訂網域或 workers.dev 時,請改為將 ORIGIN_URL 設為您的後端位址。
"routes": [{
"pattern": "example.com/*",
"zone_name": "example.com"
}]運作原理
Worker 讀取訪客的 IP、User-Agent,以及 Cloudflare 提供的 JA4。
Agentscan 與 IP Detection 並行運作,按訪客快取,1.5 秒無回應即放行請求。
monitor 模式向原始伺服器傳送判定標頭。enforce 模式亦會對被封鎖的訪客回傳 403。
已驗證的爬蟲一律放行,用戶端自行傳送的 X-IPScanner-* 標頭會被移除。
標頭
檢查失敗或被略過時,僅設定 X-IPScanner-Status。
| 標頭 | 來源 | 範例 |
|---|---|---|
| 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-Anonymized兩者 | 兩者 | false |
| X-IPScanner-RiskIP Detection | IP Detection | 12 |
| X-IPScanner-CountryIP Detection | IP Detection | DE |
| X-IPScanner-StatusWorker | Worker | ok |
設定
在 wrangler.jsonc 的 vars 區塊中設定。
| 變數 | 預設值 | 作用 |
|---|---|---|
| MODEmonitor 加入標頭,enforce 亦會封鎖 | monitor | monitor 加入標頭,enforce 亦會封鎖 |
| CHECK_AGENT執行 Agentscan | true | 執行 Agentscan |
| CHECK_IP執行 IP Detection | true | 執行 IP Detection |
| BLOCK_CLASSESenforce 模式下封鎖的 Agentscan 類別 | malicious_automation | enforce 模式下封鎖的 Agentscan 類別 |
| BLOCK_ANONYMIZEDenforce 模式下一併封鎖 VPN、代理及 Tor | false | enforce 模式下一併封鎖 VPN、代理及 Tor |
| TIMEOUT_MS每次呼叫的時限,逾時後放行請求 | 1500 | 每次呼叫的時限,逾時後放行請求 |
| AGENT_TTLAgentscan 判定結果的快取秒數 | 600 | Agentscan 判定結果的快取秒數 |
| IP_TTLIP 查詢結果的快取秒數 | 3600 | IP 查詢結果的快取秒數 |
| SKIP_PATHS略過檢查的路徑正規表示式 | 靜態資源 | 略過檢查的路徑正規表示式 |
| ORIGIN_URL未設定路由時轉發的後端位址 | 空白 | 未設定路由時轉發的後端位址 |
常見問題