2025-09-03 18:22:29 +02:00
|
|
|
|
{
|
2025-09-05 12:47:36 +02:00
|
|
|
|
"threshold": 100,
|
2025-09-03 18:22:29 +02:00
|
|
|
|
"rules": [
|
2025-09-06 16:20:58 +02:00
|
|
|
|
{"func": "fromKnownBotIP",
|
2025-11-04 20:23:48 +01:00
|
|
|
|
"id": "knownIpRange", "desc": "From known IP range",
|
2025-10-31 10:18:41 +01:00
|
|
|
|
"bot": 40
|
2025-09-06 16:20:58 +02:00
|
|
|
|
},
|
2025-09-21 11:40:47 +02:00
|
|
|
|
{"func": "matchesClient", "params": ["aol","msie","ffold","chromeold","oldedge","operaold"],
|
2025-09-05 16:22:39 +02:00
|
|
|
|
"id": "oldClient", "desc": "Obsolete browser version",
|
2025-09-05 12:47:36 +02:00
|
|
|
|
"bot": 40
|
|
|
|
|
|
},
|
2025-09-14 11:58:40 +02:00
|
|
|
|
{"func": "matchesPlatform", "params": ["winold", "macosold", "androidold"],
|
2025-09-05 16:22:39 +02:00
|
|
|
|
"id": "oldOS", "desc": "Obsolete platform version",
|
2025-09-05 12:47:36 +02:00
|
|
|
|
"bot": 40
|
|
|
|
|
|
},
|
2025-09-10 23:07:51 +02:00
|
|
|
|
{"func": "matchesPlatform", "params": ["winsrvr", "bsd"],
|
|
|
|
|
|
"id": "serverOS", "desc": "Server OS",
|
|
|
|
|
|
"bot": 40
|
|
|
|
|
|
},
|
2025-09-14 11:58:40 +02:00
|
|
|
|
{"func": "matchesPlatform", "params": ["null"],
|
|
|
|
|
|
"id": "noOS", "desc": "Unknown or missing OS information",
|
|
|
|
|
|
"bot": 40
|
|
|
|
|
|
},
|
2025-09-05 12:47:36 +02:00
|
|
|
|
{"func": "smallPageCount", "params": [1],
|
2025-09-06 16:20:58 +02:00
|
|
|
|
"id": "onePage", "desc": "Visiter viewed only a single page",
|
2025-10-19 10:50:27 +02:00
|
|
|
|
"bot": 20
|
2025-09-05 12:47:36 +02:00
|
|
|
|
},
|
2025-09-07 16:11:17 +02:00
|
|
|
|
{"func": "noRecord", "params": ["log"],
|
|
|
|
|
|
"id": "noClient", "desc": "No client-side JS log was recorded",
|
2025-10-16 08:24:46 +02:00
|
|
|
|
"bot": 50
|
2025-09-07 16:11:17 +02:00
|
|
|
|
},
|
|
|
|
|
|
{"func": "noRecord", "params": ["tck"],
|
|
|
|
|
|
"id": "noTicks", "desc": "No client ticks were recorded",
|
2025-10-19 10:50:27 +02:00
|
|
|
|
"bot": 10
|
2025-09-05 12:47:36 +02:00
|
|
|
|
},
|
2025-09-06 16:20:58 +02:00
|
|
|
|
{"func": "noReferrer",
|
|
|
|
|
|
"id": "noRefs", "desc": "No referer field",
|
|
|
|
|
|
"bot": 30
|
|
|
|
|
|
},
|
2025-09-21 18:07:01 +02:00
|
|
|
|
{"func": "matchesClient", "params": ["brave","operaold","msie","webkit"],
|
2025-09-06 16:20:58 +02:00
|
|
|
|
"id": "susClient", "desc": "Client identifier that is popular with bot networks",
|
|
|
|
|
|
"bot": 10
|
|
|
|
|
|
},
|
2025-10-26 20:09:54 +01:00
|
|
|
|
{"func": "matchesClient", "params": ["undici","gohttp","python","wget","curl"],
|
2025-10-17 18:04:34 +02:00
|
|
|
|
"id": "botClient", "desc": "Client identifier indicates web crawler",
|
|
|
|
|
|
"bot": 100
|
|
|
|
|
|
},
|
2025-10-19 10:50:27 +02:00
|
|
|
|
{"func": "matchesUserAgent", "params": [""],
|
|
|
|
|
|
"id": "noUA", "desc": "Didn’t even bother to send a user-agent string",
|
|
|
|
|
|
"bot": 50
|
|
|
|
|
|
},
|
2025-09-14 19:32:48 +02:00
|
|
|
|
{"func": "combinationTest", "params": [["macos","chromeold"],["macos","msie"],["winold","edge"],["winold","brave"]],
|
2025-09-06 16:20:58 +02:00
|
|
|
|
"id": "suspPC", "desc": "Suspicious combination of platform and client",
|
2025-09-05 12:47:36 +02:00
|
|
|
|
"bot": 30
|
2025-09-06 16:20:58 +02:00
|
|
|
|
},
|
2025-09-14 19:32:48 +02:00
|
|
|
|
{"func": "combinationTest", "params": [["macos","msie"],["win10","safari"],["macosold","brave"]],
|
2025-09-06 16:20:58 +02:00
|
|
|
|
"id": "impPC", "desc": "Impossible combination of platform and client",
|
2025-09-14 19:32:48 +02:00
|
|
|
|
"bot": 70
|
2025-09-07 16:11:17 +02:00
|
|
|
|
},
|
2025-11-04 20:23:48 +01:00
|
|
|
|
{"func": "loadSpeed", "params": [3, 10],
|
|
|
|
|
|
"id": "speedRun", "desc": "Average time between page loads is less than 10 seconds",
|
|
|
|
|
|
"bot": 30
|
|
|
|
|
|
},
|
2025-09-07 16:11:17 +02:00
|
|
|
|
{"func": "loadSpeed", "params": [3, 20],
|
|
|
|
|
|
"id": "speedRun", "desc": "Average time between page loads is less than 20 seconds",
|
2025-11-04 20:23:48 +01:00
|
|
|
|
"bot": 30
|
2025-09-09 09:36:13 +02:00
|
|
|
|
},
|
|
|
|
|
|
{"func": "noAcceptLang",
|
2025-09-10 00:02:42 +02:00
|
|
|
|
"id": "noAcc", "desc": "No “Accept-Language” header",
|
2025-09-09 09:36:13 +02:00
|
|
|
|
"bot": 40
|
2025-09-10 14:44:08 +02:00
|
|
|
|
},
|
2025-09-21 16:11:59 +02:00
|
|
|
|
{"func": "matchLang", "params": [],
|
|
|
|
|
|
"id": "langMatch", "desc": "Client’s ‘Accept-Language’ header does not match the page language",
|
|
|
|
|
|
"bot": 30
|
2025-10-13 10:51:19 +02:00
|
|
|
|
},
|
2025-10-26 20:09:54 +01:00
|
|
|
|
{"func": "blockedByCaptcha", "params": [],
|
2025-10-27 21:07:05 +01:00
|
|
|
|
"id": "blockedByCaptcha", "desc": "Visitor did not solve the captcha",
|
2025-12-06 13:57:58 +01:00
|
|
|
|
"bot": 50
|
2025-10-26 20:09:54 +01:00
|
|
|
|
},
|
|
|
|
|
|
{"func": "whitelistedByCaptcha", "params": [],
|
|
|
|
|
|
"id": "whitelistedByCaptcha", "desc": "Visitor uses a whitelisted IP address",
|
2025-12-06 13:57:58 +01:00
|
|
|
|
"bot": -30
|
2025-09-05 12:47:36 +02:00
|
|
|
|
}
|
|
|
|
|
|
]
|
2025-09-03 18:22:29 +02:00
|
|
|
|
}
|