Как заблокировать ботов на сайте с помощью Cloudflare?

Включаем SSL/TLS => Edge Cartificates => Always Use HTTPS

Security => WAF

Чем первее идет правило, тем оно приоритетнее.

Доступные испытания

​​Managed Challenge (рекомендуется)

Managed Challenge — это когда Cloudflare динамически выбирает соответствующий тип вызова на основе характеристик запроса. Это помогает избежать капчей, что также сокращает время, затрачиваемое человеком на разгадывание капчей в Интернете.

Если нет особых проблем с совместимостью или других причин для использования других типов вызовов, вам следует использовать Managed Challenge для различных правил брандмауэра.

В зависимости от характеристик запроса Cloudflare выберет подходящий тип запроса, который может включать, но не ограничивается:

  • Неинтерактивная страница вызова (аналогичная текущей JS Challenge).
  • Пользовательский интерактивный вызов (например, нажатие кнопки).
  • Токены приватного доступа (с использованием последних версий операционных систем Apple).

​​JS challenge

С помощью ​​JS challenge Cloudflare представляет страницу вызова, которая не требует взаимодействия с посетителем, а требует обработки JavaScript их браузером.

Посетителю придется подождать, пока его браузер завершит обработку JavaScript, что должно занять менее пяти секунд.

Interactive Challenge (типо капча)

Интерактивные задачи требуют, чтобы посетитель взаимодействовал со страницей задач, предлагая посетителю интерактивную задачу для решения. Cloudflare не рекомендует использовать интерактивные задачи.

Пропускаем хороших ботов и запросы с разрешенных IP

Или в Edit expression пишем:

(cf.client.bot) or (http.user_agent contains "Mail.RU_Bot") or (ip.src eq 88.244.263.12) or (ip.src eq 185.25.84.123)

Блокируем краулеры

Краулеры, парсеры и прочие проверяльщики создают бешенную нагрузку на крупных ресурсах. Можно их отсекать еще на подлёте. Актуальные юзерагенты взяты отсюда и адаптированы под CF. Опционально можно запретить доступ для сохранения данных в вебархиве с помощью блокировки юзерагента ia_archiver.

Необходимо будет создать два отдельных правила, потому что в одно не помещается блокировка всех юзерагентов, поэтому код настройки в двух частях.

Правило 1:

(http.user_agent contains «Abonti») or (http.user_agent contains «AspiegelBot») or (http.user_agent contains «aggregator») or (http.user_agent contains «AhrefsBot») or (http.user_agent contains «Aport») or (http.user_agent contains «asterias») or (http.user_agent contains «Baiduspider») or (http.user_agent contains «BDCbot») or (http.user_agent contains «bidswitchbot») or (http.user_agent contains «Birubot») or (http.user_agent contains «BLEXBot») or (http.user_agent contains «BUbiNG») or (http.user_agent contains «BuiltBotTough») or (http.user_agent contains «Bullseye») or (http.user_agent contains «BunnySlippers») or (http.user_agent contains «Butterfly») or (http.user_agent contains «ca-crawler») or (http.user_agent contains «CamontSpider») or (http.user_agent contains «CCBot») or (http.user_agent contains «Cegbfeieh») or (http.user_agent contains «CheeseBot») or (http.user_agent contains «CherryPicker») or (http.user_agent contains «coccoc») or (http.user_agent contains «CopyRightCheck») or (http.user_agent contains «cosmos») or (http.user_agent contains «crawler») or (http.user_agent contains «Crescent») or (http.user_agent contains «CyotekWebCopy/1.7») or (http.user_agent contains «CyotekHTTP/2.0») or (http.user_agent contains «DataForSeoBot») or (http.user_agent contains «DeuSu») or (http.user_agent contains «discobot») or (http.user_agent contains «DittoSpyder») or (http.user_agent contains «DnyzBot») or (http.user_agent contains «DomainCrawler») or (http.user_agent contains «DotBot») or (http.user_agent contains «Download Ninja») or (http.user_agent contains «EasouSpider») or (http.user_agent contains «EmailCollector») or (http.user_agent contains «EmailSiphon») or (http.user_agent contains «EmailWolf») or (http.user_agent contains «EroCrawler») or (http.user_agent contains «Exabot») or (http.user_agent contains «ExtractorPro») or (http.user_agent contains «Ezooms») or (http.user_agent contains «FairShare») or (http.user_agent contains «Fasterfox») or (http.user_agent contains «FeedBooster») or (http.user_agent contains «Foobot») or (http.user_agent contains «Genieo») or (http.user_agent contains «GetIntent Crawler») or (http.user_agent contains «Gigabot») or (http.user_agent contains «gold crawler») or (http.user_agent contains «GrapeshotCrawler») or (http.user_agent contains «grub-client») or (http.user_agent contains «Harvest») or (http.user_agent contains «hloader») or (http.user_agent contains «httplib») or (http.user_agent contains «HTTrack») or (http.user_agent contains «humanlinks») or (http.user_agent contains «HybridBot») or (http.user_agent contains «ia_archiver») or (http.user_agent contains «ieautodiscovery») or (http.user_agent contains «Incutio») or (http.user_agent contains «InfoNaviRobot») or (http.user_agent contains «InternetSeer») or (http.user_agent contains «IstellaBot») or (http.user_agent contains «Java») or (http.user_agent contains «Java/1.») or (http.user_agent contains «JamesBOT») or (http.user_agent contains «JennyBot») or (http.user_agent contains «JS-Kit») or (http.user_agent contains «k2spider») or (http.user_agent contains «Kenjin Spider») or (http.user_agent contains «Keyword Density/0.9») or (http.user_agent contains «kmSearchBot») or (http.user_agent contains «larbin») or (http.user_agent contains «LexiBot») or (http.user_agent contains «libWeb») or (http.user_agent contains «libwww») or (http.user_agent contains «Linguee») or (http.user_agent contains «LinkExchanger») or (http.user_agent contains «LinkextractorPro») or (http.user_agent contains «linko») or (http.user_agent contains «LinkScan/8.1a Unix») or (http.user_agent contains «LinkWalker») or (http.user_agent contains «LinkpadBot») or (http.user_agent contains «lmspider») or (http.user_agent contains «LNSpiderguy») or (http.user_agent contains «ltx71») or (http.user_agent contains «lwp-trivial») or (http.user_agent contains «lwp-trivial») or (http.user_agent contains «magpie») or (http.user_agent contains «Mata Hari») or (http.user_agent contains «MaxPointCrawler») or (http.user_agent contains «MegaIndex»)

Правило 2:

(http.user_agent contains «memoryBot») or (http.user_agent contains «Microsoft URL Control») or (http.user_agent contains «MIIxpc») or (http.user_agent contains «Mippin») or (http.user_agent contains «Missigua Locator») or (http.user_agent contains «Mister PiX») or (http.user_agent contains «MJ12bot») or (http.user_agent contains «MLBot») or (http.user_agent contains «moget») or (http.user_agent contains «MSIECrawler») or (http.user_agent contains «msnbot») or (http.user_agent contains «msnbot-media») or (http.user_agent contains «NetAnts») or (http.user_agent contains «NICErsPRO») or (http.user_agent contains «Niki-Bot») or (http.user_agent contains «NjuiceBot») or (http.user_agent contains «NPBot») or (http.user_agent contains «Nutch») or (http.user_agent contains «Offline Explorer») or (http.user_agent contains «OLEcrawler») or (http.user_agent contains «Openfind») or (http.user_agent contains «panscient.com») or (http.user_agent contains «PostRank») or (http.user_agent contains «ProPowerBot/2.14») or (http.user_agent contains «PetalBot») or (http.user_agent contains «ProWebWalker») or (http.user_agent contains «ptd-crawler») or (http.user_agent contains «Purebot») or (http.user_agent contains «PycURL») or (http.user_agent contains «python-rcontainsuests») or (http.user_agent contains «Python-urllib») or (http.user_agent contains «QueryN Metasearch») or (http.user_agent contains «RepoMonkey») or (http.user_agent contains «Riddler») or (http.user_agent contains «RMA») or (http.user_agent contains «Scrapy») or (http.user_agent contains «SemrushBot») or (http.user_agent contains «serf») or (http.user_agent contains «SeznamBot») or (http.user_agent contains «SISTRIX») or (http.user_agent contains «SiteBot») or (http.user_agent contains «sitecheck.Internetseer.com») or (http.user_agent contains «SiteSnagger») or (http.user_agent contains «Serpstat») or (http.user_agent contains «Slurp») or (http.user_agent contains «SnapPreviewBot») or (http.user_agent contains «Sogou») or (http.user_agent contains «Soup») or (http.user_agent contains «SpankBot») or (http.user_agent contains «spanner») or (http.user_agent contains «spbot») or (http.user_agent contains «Spinn3r») or (http.user_agent contains «SpyFu») or (http.user_agent contains «suggybot») or (http.user_agent contains «SurveyBot») or (http.user_agent contains «suzuran») or (http.user_agent contains «SWeb») or (http.user_agent contains «Szukacz/1.4») or (http.user_agent contains «Teleport») or (http.user_agent contains «Telesoft») or (http.user_agent contains «The Intraformant») or (http.user_agent contains «TheNomad») or (http.user_agent contains «TightTwatBot») or (http.user_agent contains «Titan») or (http.user_agent contains «toCrawl/UrlDispatcher») or (http.user_agent contains «True_Robot») or (http.user_agent contains «ttCrawler») or (http.user_agent contains «turingos») or (http.user_agent contains «TurnitinBot») or (http.user_agent contains «UbiCrawler») or (http.user_agent contains «UnisterBot») or (http.user_agent contains «Unknown») or (http.user_agent contains «uptime files») or (http.user_agent contains «URLy Warning») or (http.user_agent contains «User-Agent») or (http.user_agent contains «VCI») or (http.user_agent contains «Vedma») or (http.user_agent contains «Voyager») or (http.user_agent contains «WBSearchBot») or (http.user_agent contains «Web Downloader/6.9») or (http.user_agent contains «Web Image Collector») or (http.user_agent contains «WebAuto») or (http.user_agent contains «WebBandit») or (http.user_agent contains «WebCopier») or (http.user_agent contains «WebEnhancer») or (http.user_agent contains «WebmasterWorldForumBot») or (http.user_agent contains «WebReaper») or (http.user_agent contains «WebSauger») or (http.user_agent contains «Website Quester») or (http.user_agent contains «Webster Pro») or (http.user_agent contains «WebStripper») or (http.user_agent contains «WebZip») or (http.user_agent contains «Wotbox») or (http.user_agent contains «wsr-agent») or (http.user_agent contains «WWW-Collector-E») or (http.user_agent contains «Yeti»)

Действие: Block

Managed Challenge для тех, кто заходит через Ipv6, либо по http

Прописываем такие правила:

Можно нажать Edit expression и вписать вручную:

(ip.src in {::/0}) or (not ssl)

Managed Challenge или JS проверка для прямых заходов и обращений с протоколом ниже HTTP/2

Это правило можно объединить с предыдущим, если не хотите отслеживать количество прошедших/не прошедших испытание.

В данном правиле фильтруем всех, кто использует HTTP 1 и HTTP 1.1 протоколы. Чаще всего это боты. Тут же фильтруем ПФ ботов, которые прогревают профили через прямые заходы на различные сайты.

В Edit expression можно вписать:

(not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"}) or (http.referer eq "")

https://vc.ru/seo/477451-nastraivaem-cloudflare-dlya-filtracii-botov

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии