|
8 | 8 | * License: GNU/GPLv2 |
9 | 9 | * @see LICENSE.txt |
10 | 10 | * |
11 | | - * This file: Bot user agents module (last modified: 2025.10.31). |
| 11 | + * This file: Bot user agents module (last modified: 2025.11.06). |
12 | 12 | * |
13 | 13 | * False positive risk (an approximate, rough estimate only): « [ ]Low [x]Medium [ ]High » |
14 | 14 | */ |
|
114 | 114 | 'in(?:cest|come|vestment)|' . |
115 | 115 | 'jailbreak|' . |
116 | 116 | 'kamagra|keylog|' . |
117 | | - 'l(?:axative|esbian|evitra|exap|i(?:ker\.profile|nk(?:ba|che)ck|pitor)|olita|uxury|ycosa\.se)|' . |
| 117 | + 'l(?:axative|esbian|evitra|exap|i(?:ker\.profile|nkback|pitor)|olita|uxury|ycosa\.se)|' . |
118 | 118 | 'm(?:ail\.ru|e(?:laleuca|nthol)|ixrank|rie8pack)|' . |
119 | 119 | 'n(?:erdybot|etzcheckbot|eurontin|olvadex)|' . |
120 | 120 | 'orgasm|outlet|' . |
|
128 | 128 | 'xanax|' . |
129 | 129 | 'zdorov~', |
130 | 130 | $UANoSpace |
131 | | - ) || preg_match('~^go +\d|movable type|msie ?(?:\d{3,}|[2-9]\d|[0-8]\.)| (audit|href|mra |quibids )|\\(build 5339\\)~i', $UA), 'Spam UA'); // 2022.07.09 mod 2024.08.27 |
| 131 | + ) || preg_match('~^go +\d|movable type|msie ?(?:\d{3,}|[2-9]\d|[0-8]\.)| (audit|href|mra |quibids )|\\(build 5339\\)~i', $UA), 'Spam UA'); // 2022.07.09 mod 2025.11.06 |
132 | 132 |
|
133 | 133 | $Trigger(preg_match('/[\'"`]\+[\'"`]/', $UANoSpace), 'XSS attack'); // 2017.01.03 |
134 | 134 | $Trigger(strpos($UANoSpace, '`') !== false, 'Execution attempt'); // 2017.01.13 |
|
152 | 152 | '~^(?:wp-iphone$|\'?test|-|default|foo)|_sitemapper|3mir|' . |
153 | 153 | 'a(?:boundex|dmantx|dnormcrawler|dvbot|lphaserver|thens|ttache)|' . |
154 | 154 | 'blekko|blogsnowbot|' . |
155 | | - 'cmscrawler|co(?:ccoc|llect|modo-webinspector-crawler|mpspy)|crawler(?:4j|\.feedback)|' . |
| 155 | + 'cmscrawler|co(?:ccoc|llect|modo-webinspector-crawler|mpspy)|crawler\.feedback|' . |
156 | 156 | 'd(?:atacha|igout4uagent|ioscout|kimrepbot|sarobot)|' . |
157 | 157 | 'easou|exabot|' . |
158 | 158 | 'f(?:astenterprisecrawler|astlwspider|ind?bot|indlinks|loodgate|r[_-]?crawler)|' . |
|
167 | 167 | 'user-agent|visaduhoc|vonchimpenfurlr|webtarantula|wolf|' . |
168 | 168 | 'y(?:acy|isouspider|[ry]spider|unrang|unyun)|zoominfobot~', |
169 | 169 | $UANoSpace |
170 | | - ) || strpos($UA, ' ') !== false, 'Banned UA'); // 2021.07.08 mod 2025.07.24 |
| 170 | + ) || strpos($UA, ' ') !== false, 'Banned UA'); // 2021.07.08 mod 2025.11.06 |
171 | 171 |
|
172 | 172 | if (!$Trigger(( |
173 | 173 | preg_match('~^python-requests/2\.27~', $UANoSpace) && |
|
192 | 192 | 'e(?:(?:na|uro|xperi)bot|nvolk|stimatewebstats|vaal|zoom)|' . |
193 | 193 | 'f(?:dm|etch(?:er.0|or)|ibgen)|' . |
194 | 194 | 'g(?:alaxydownloads|et(?:download\.ws|ty|url11)|slfbot|umgum|urujibot)|' . |
195 | | - 'h(?:arvest|eritrix|olmes|ttp(?:fetcher|unit)|ttrack)|' . |
196 | 195 | 'i(?:mage(?:.fetcher|walker)|linkscrawler|nagist|ndocom|nfluencebot|track)|jakarta|jike|' . |
197 | 196 | 'k(?:eywenbot|eywordsearchtool|imengi|kman)|' . |
198 | 197 | 'l(?:abjs\.pro|arbin|ink(?:dex|walker)|iperhey|(?:t|ush)bot)|' . |
|
208 | 207 | 'w(?:arebay|auuu|bsearchbot|eb(?:alta|capture|download|mastercoffee|meup|ripper)|ikio|indows(?:3|seven)|ise-guys|khtmlto|orldbot|otbox)|' . |
209 | 208 | 'yoofind~', |
210 | 209 | $UANoSpace |
211 | | - ), 'Backlink/SEO/Scraper UA'); // 2022.09.19 mod 2025.07.24 |
| 210 | + ), 'Backlink/SEO/Scraper UA'); // 2022.09.19 mod 2025.11.06 |
212 | 211 |
|
213 | 212 | $Trigger(preg_match('~zombiebot~', $UANoSpace), 'Backlink/SEO'); // 2025.07.26 |
214 | 213 |
|
|
226 | 225 | ), 'Malware UA'); // 2017.04.23 |
227 | 226 |
|
228 | 227 | $Trigger(preg_match( |
229 | | - '~\.buzz|(?<!amazona)dbot/|(?:\W|^)(?:cu|pe)rl(?:\W|$)|#boss#|' . |
| 228 | + '~\.buzz|(?<!amazona)dbot/|(?:\W|^)(?:curl|libwww|perl)(?:\W|$)|#boss#|' . |
230 | 229 | '^(?:[aim]$|(?!linkedinbot).*http-?(?:agent|client))|-xpanse|' . |
231 | | - 'a(?:bonti|ccserver|cme.spider|dreview/\d|jbaxy|nthill$|nyevent-http|ppengine|xios)|' . |
| 230 | + 'a(?:bonti|ccserver|cme.spider|dreview/\d|jbaxy|nthill$|nyevent-http|ppengine)|' . |
232 | 231 | 'b(?:igbozz|itsight|lackbird|logsearch|logbot|salsa)|' . |
233 | 232 | 'c(?:astlebot|atexplorador|cleaner|k=\{\}|lickagy|liqzbot|ms-?checker|ontextad|orporama|ortex/\d|rowsnest|yberpatrol)|' . |
234 | 233 | 'd(?:eepfield|le_spider|nbcrawler|omainappender|ummyconnection|umprendertree)|' . |
|
241 | 240 | 'm(?:acinroyprivacyauditors|etaintelligence|ultipletimes)|' . |
242 | 241 | 'n(?:etcraft|ettrapport|icebot|mapscriptingengine|rsbot)|' . |
243 | 242 | 'ontheinternet|' . |
244 | | - 'p(?:4bot|4load|acrawler|ageglimpse|aloalto(?:company|network)|andalytics|arsijoo|egasusmonitoring|hantomjs|hpcrawl|ingdom|rlog)|' . |
| 243 | + 'p(?:4bot|4load|acrawler|ageglimpse|aloalto(?:company|network)|andalytics|arsijoo|egasusmonitoring|hantomjs|hpcrawl|ingdom|rlog|ython-httpx)|' . |
245 | 244 | 'r(?:arelyused|obo(?:cop|spider)|yze)|' . |
246 | 245 | 's(?:/got|can\.lol|can(?:ner|info)|creener|eekport|itedomain|mut|nap(?:preview)?bot|oapclient|ocial(?:ayer|searcher)|oso|pyglass|quider|treetbot|ynapse)|' . |
247 | 246 | 't(?:omba|weezler|ryghost)|' . |
|
254 | 253 | ) || preg_match( |
255 | 254 | '~^Mozilla/5\.0( [A-Za-z]{2,5}/0\..)?$~', |
256 | 255 | $CIDRAM['BlockInfo']['UA'] |
257 | | - ), 'Unauthorised'); // 2023.09.15 mod 2025.10.31 |
| 256 | + ), 'Unauthorised'); // 2023.09.15 mod 2025.11.06 |
258 | 257 |
|
259 | 258 | if ($Trigger(preg_match('~ivre-|masscan~', $UANoSpace), 'Port scanner and synflood tool detected')) { |
260 | 259 | $CIDRAM['Reporter']->report([14, 15, 19], ['MASSCAN port scanner and synflood tool detected.'], $CIDRAM['BlockInfo']['IPAddr']); |
|
319 | 318 | } // 2022.05.08 |
320 | 319 |
|
321 | 320 | if ($Trigger(preg_match( |
322 | | - '~80legs|' . |
323 | | - 'a(?:dbar|i2bot|ihitbot|i.?searchbot|liyun|ndibot|nonymous-?coward|wario)|' . |
324 | | - 'b(?:anana-?bot|edrockbot|ot-?test|rands-?bot|rightbot|ytespider)|' . |
325 | | - 'c(?:asperbot|cbot|hinaclaw|lark-?crawler|ohere-)|' . |
| 321 | + '~^http_get|2bone|80legs|' . |
| 322 | + 'a(?:dbar|i2bot|ihitbot|i.?searchbot|liyun|ndibot|nonymous-?coward|wario|xios)|' . |
| 323 | + 'b(?:anana-?bot|edrockbot|ot-?test|rands-?bot|rightbot|rings_?you|ytespider)|' . |
| 324 | + 'c(?:asperbot|cbot|hinaclaw|lark-?crawler|ohere-|rawler4j)|' . |
326 | 325 | 'd(?:atenbank|eep-?research|iffbot)|' . |
327 | 326 | 'echobo[tx]|' . |
328 | 327 | 'f(?:idget-?spinner-?bot|irecrawl|lyriver|riendly-?(?:crawler|spider))|' . |
329 | | - 'i(?:askspider|magesift|mg2dataset)|' . |
| 328 | + 'h(?:arvest|eritrix|tt(?:pfetcher|punit|rack))|' . |
| 329 | + 'i(?:askspider|magesift|mg2dataset|p_address)|' . |
330 | 330 | 'jaddjabot|' . |
331 | 331 | 'k(?:angaroobot|eys-?so-?bot)|' . |
| 332 | + 'l(?:9explore|ink(?:check|fluence))|' . |
332 | 333 | 'm(?:amac(?:asper|yber)|istral|ozilla/0|ycentralai)|' . |
333 | 334 | 'n(?:etestate|ovaact)|' . |
334 | 335 | 'o(?:mgili|rbbot)|' . |
335 | | - 'p(?:angubot|anscient|erplexity|hindbot|hxbot|oseidon|ublicwebcrawler)|' . |
| 336 | + 'p(?:angubot|anscient|erplexity|hindbot|hxbot|lease_?block|oseidon|ublicwebcrawler)|' . |
336 | 337 | 'q(?:ualifiedbot|uillbot)|' . |
337 | 338 | 'research.?crawler|' . |
338 | 339 | 's(?:bintuition|crap[ey]|idetrade|p(?:hi|y)der|torm-?crawler|ummalybot)|' . |
339 | | - 't(?:est-?bot|heknowledgeai|hesis-?research-?bot|hinkchaos|impi|iny-?(?:bot|test)|rafilatura)|' . |
| 340 | + 't(?:est[-_]?(?:bot|phase)|heknowledgeai|hesis-?research-?bot|hink(?:bot|chaos)|impi|iny-?(?:bot|test)|rafilatura)|' . |
340 | 341 | 'velenpublic|' . |
341 | | - 'w(?:ardbot|ebzio|hatstuffwherebot|inhttp)|' . |
| 342 | + 'w(?:ardbot|ebsite[-_]?scraper|ebzio|hatstuffwherebot|inhttp)|' . |
342 | 343 | 'xtractorpro|' . |
| 344 | + 'yak/|' . |
343 | 345 | 'z(?:ephuli-?bot|grab)~', |
344 | 346 | $UANoSpace |
345 | 347 | ), 'Scraper UA')) { |
346 | 348 | $CIDRAM['Tracking options override'] = 'extended'; |
347 | | - } // 2023.11.17 mod 2025.10.31 |
| 349 | + } // 2023.11.17 mod 2025.11.06 |
348 | 350 |
|
349 | 351 | $Trigger(preg_match('~ct‑git‑scanner/~i', $CIDRAM['BlockInfo']['UA']), 'Unauthorised Git scanner'); // 2025.07.05 |
350 | 352 |
|
|
0 commit comments