1{ 2 "threshold": 100, 3 "rules": [ 4 {"func": "fromKnownBotIP", 5 "id": "botIpRange", "desc": "Common Bot IP range", 6 "bot": 50 7 }, 8 {"func": "matchesClient", "params": ["aol","msie","ffold","chromeold","oldedge","operaold"], 9 "id": "oldClient", "desc": "Obsolete browser version", 10 "bot": 40 11 }, 12 {"func": "matchesPlatform", "params": ["winold", "macosold", "androidold"], 13 "id": "oldOS", "desc": "Obsolete platform version", 14 "bot": 40 15 }, 16 {"func": "matchesPlatform", "params": ["winsrvr", "bsd"], 17 "id": "serverOS", "desc": "Server OS", 18 "bot": 40 19 }, 20 {"func": "matchesPlatform", "params": ["null"], 21 "id": "noOS", "desc": "Unknown or missing OS information", 22 "bot": 40 23 }, 24 {"func": "smallPageCount", "params": [1], 25 "id": "onePage", "desc": "Visiter viewed only a single page", 26 "bot": 20 27 }, 28 {"func": "noRecord", "params": ["log"], 29 "id": "noClient", "desc": "No client-side JS log was recorded", 30 "bot": 50 31 }, 32 {"func": "noRecord", "params": ["tck"], 33 "id": "noTicks", "desc": "No client ticks were recorded", 34 "bot": 10 35 }, 36 {"func": "noReferrer", 37 "id": "noRefs", "desc": "No referer field", 38 "bot": 30 39 }, 40 {"func": "matchesClient", "params": ["brave","operaold","msie","webkit"], 41 "id": "susClient", "desc": "Client identifier that is popular with bot networks", 42 "bot": 10 43 }, 44 {"func": "matchesClient", "params": ["undici","gohttp"], 45 "id": "botClient", "desc": "Client identifier indicates web crawler", 46 "bot": 100 47 }, 48 {"func": "matchesUserAgent", "params": [""], 49 "id": "noUA", "desc": "Didn’t even bother to send a user-agent string", 50 "bot": 50 51 }, 52 {"func": "combinationTest", "params": [["macos","chromeold"],["macos","msie"],["winold","edge"],["winold","brave"]], 53 "id": "suspPC", "desc": "Suspicious combination of platform and client", 54 "bot": 30 55 }, 56 {"func": "combinationTest", "params": [["macos","msie"],["win10","safari"],["macosold","brave"]], 57 "id": "impPC", "desc": "Impossible combination of platform and client", 58 "bot": 70 59 }, 60 {"func": "loadSpeed", "params": [3, 20], 61 "id": "speedRun", "desc": "Average time between page loads is less than 20 seconds", 62 "bot": 80 63 }, 64 {"func": "noAcceptLang", 65 "id": "noAcc", "desc": "No “Accept-Language” header", 66 "bot": 40 67 }, 68 {"func": "matchLang", "params": [], 69 "id": "langMatch", "desc": "Client’s ‘Accept-Language’ header does not match the page language", 70 "bot": 30 71 }, 72 {"func": "matchesClient", "params": ["whatsapp","applemsgs","goognblm"], 73 "id": "previewClient", "desc": "User-triggered bot load (e.g. preview)", 74 "bot": -120 75 } 76 ] 77}