{"id":14275,"url":"\/distributions\/14275\/click?bit=1&hash=bccbaeb320d3784aa2d1badbee38ca8d11406e8938daaca7e74be177682eb28b","title":"\u041d\u0430 \u0447\u0451\u043c \u0437\u0430\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0430\u0432\u0446\u044b \u0430\u0432\u0442\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f72066c6-8459-501b-aea6-770cd3ac60a6"}

Как защитить сайт от ботов: простая инструкция (вам понадобится только Cloudflare)

Подробная инструкция по настройке Клаудфлэр, которая позволит отсекать от 70 до 99% поведенческих ботов. Многие агентства надувают щёки, типа «мы вам настроим Cloudflare за 100500 денег», я расскажу, как это сделать самому и бесплатно.

Накрутка поведенческих факторов вышла уже куда-то совсем в бесконтрольное пространство. Как только сайт занимает хоть немного топ Яндекса по коммерческим запросам, на него сразу налетают толпы ботов. Как я понимаю, это называется «нагуливать» статистику. Что они там на самом деле нагуливают — скорее всего, никому неизвестно.
У меня в метрике есть на наблюдении несколько сайтов, которые я побоялся бы палкой тыкать, не то что со своего браузера заходить: помойки спамные, сайты под фильтрами и т.д. И на них всегда тусуются вот эти вот ребята, которые в метрике видны как «Переходы из Яндекса». Куда они потом эту статистику утаскивают, а главное, зачем?

Ладно, это эмоциональное вступление, переходим к делу.
Вам понадобится бесплатный аккаунт Cloudflare, как регистрировать и привязывать к хостингу — все знают, не буду останавливаться на этом.

Далее нужно настроить правила фильтрации. В бесплатном тарифе доступно всего 5 правил, но нам больше и не понадобится. Нажимаем вот сюда:

Правила добавляем такие:

  • Сначала пропускаем ботов Яндекс и Гугл
  • Пропускаем запросы со своего хостинга (обязательный пункт! иначе почта, крон и прочие сервисы сломаются)
  • Блокируем ненужные страны
  • Блокируем известных ботов
  • Блокируем зловредных неизвестных ботов

1. Вот как пропустить ботов Гугл, Яндекс:

Нажимаем Edit Expression, вставляем такую команду:

(http.user_agent contains "Google") or (http.user_agent contains "Yandex")

Нажимаем Use expression builder, выбираем действие SKIP и проставляем все галочки, нажимаем Deploy.

2. Пропускаем запросы со своего хостинга.

Здесь вам понадобится узнать IP адрес или его ASNUM, если не знаете как - спросите в техподдержке хостинга. И заодно пропускаем все запросы к wp-cron.php, если у вас Вордпресс. Так же через Expression builder вставляем команду.

Пример:

(ip.geoip.asnum eq 22612) or (ip.geoip.asnum eq 62371) or (ip.geoip.asnum eq 47583) or (http.request.uri contains "/wp-cron.php")

Нажимаем Use expression builder, выбираем действие SKIP и проставляем все галочки, нажимаем Deploy.

3. Блокируем ненужные страны и известных ботов.

Поскольку правил всего 5, а ботов много - я раскидал их на 2 правила, чтобы уместиться в лимит. Страны поменяйте соответственно под свой сайт: в моём примере блокируется Болгария, а вам это может быть не нужно.

Часть 1:

(ip.geoip.country eq "CN") or (ip.geoip.country eq "UA") or (ip.geoip.country eq "IR") or (ip.geoip.country eq "IN") or (ip.geoip.continent eq "AF") or (ip.geoip.country eq "SG") or (ip.geoip.country eq "GB") or (ip.geoip.country eq "PL") or (ip.geoip.country eq "ID") or (ip.geoip.country eq "TH") or (ip.geoip.country eq "HK") or (ip.geoip.country eq "CH") or (ip.geoip.country eq "BG") or (ip.geoip.country eq "CZ") or (ip.geoip.country eq "SC") or (ip.geoip.country eq "CA") or (http.user_agent contains "ahrefs.com") or (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")

Нажимаем Use expression builder, выбираем действие BLOCK, нажимаем Deploy.

Используем следующее правило, вставляем часть 2:

(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")

Нажимаем Use expression builder, выбираем действие BLOCK, нажимаем Deploy.

4. Самая мякотка: блокируем зловредных ботов.

Большинство из них не использует ssl или заходит со странных ip адресов. Инструкцию подсмотрел на сайте partnerkin.com и честно стырил оттуда. Вот команда:

(ip.src in {::/0}) or (not ssl) or (not http.request.version in {"HTTP/2" "HTTP/3" "SPDY/3.1"})

Если очень много ботов попадает через прямые заходы, тогда добавляем ещё такую команду:

or (http.referer eq "")

Всем посетителям без реферера, т. е. обычным пользователям, которые заходят на сайт напрямую, будет выдаваться капча. Смотрите сами по ситуации, стоит это применять или нет.

Выбираем действие Choose action: Managed Challenge, нажимаем Deploy.

Всё, вы круче, чем кулхацкер! Эти настройки позволяют отсекать до 99% ботов, но, к сожалению, некоторые всё равно могут пролезть.

Всем хорошего сео, подпишись, поставь лайк, колокольчик, комментарий, донат, патреон, ссылка в описании!

0
20 комментариев
Написать комментарий...
Michael

Какой должен быть итог кроме снижения роботности и ухода части ботов из прямых заходов во внутренние?

Ответить
Развернуть ветку
Вениамин Дублин
Автор

Дорогой Микаэль! Не совсем понимаю ваш вопрос. Дело в том, что вы спрашиваете в терминах Яндекс-метрики: "роботность", "внутренние заходы". Но ведь у вас на сайте может не быть вообще никакого сервиса от Яндекса, совсем никакого.

Независимо от этого итог должен быть такой, как заявлено в лиде статьи: "отсечение от 70 до 99% поведенческих ботов". Вы это увидите по серверным логам.

Я даю гарантию на заявленный результат. Если ваш результат отличается — пожалуйста, напишите мне личное сообщение, и я верну вам все деньги, которые вы заплатили за прочтение бесплатной статьи по настройке бесплатного сервиса Cloudflare.
Спасибо за комментарий, искренне ваш, Вениамин Дублин.

Ответить
Развернуть ветку
Michael

А если у меня отсечется только 69% ботов? Получается текст ерунда?

Ответить
Развернуть ветку
Рустам Кагарманов

да, все именно так и работает

Ответить
Развернуть ветку
Интернет-магазин Киндеренок

Здравствуйте! Второй пункт не поняла. У моего домена есть привязка к IP адресу. Это оно? Вы пишите следующее: (ip.geoip.asnum eq 22612) or (ip.geoip.asnum eq 62371) or (ip.geoip.asnum eq 47583)
А как с IP запись должна выглядеть?
Буду благодарна за помощь.

Ответить
Развернуть ветку
К. Г.

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Вениамин Дублин
Автор

дяденька, у меня ГОДАМИ работают сайты на связке ворпдресс+клауд+сервер в канаде (юса, европа, что угодно), без нареканий от пользователей и яндекса, о чём вы 😂
Зачем они к вам прибегают? скажите, чтобы ко мне бегали 😂

Ответить
Развернуть ветку
К. Г.

нареканий от пользователей и яндекса там быть и не должно (если не считать возможного увеличения загрузки страниц). А сервисы аналитики с ним работают из рук вон плохо. Если есть решение таких проблем, то велком в студию))).

Ответить
Развернуть ветку
Вениамин Дублин
Автор

какая студия, какая аналитика? не понимаю, о чём вы вообще говорите. Если у вас какие-то проблемы с аналитикой в студиях - может быть, вы напишете статью об этом? Я уверен, всем будет интересно почитать 👍 потому что у меня нет вообще никаких проблем, 0, zero 😂

Ответить
Развернуть ветку
К. Г.

значит, просто не вникали и не сталкивались)

Ответить
Развернуть ветку
Вениамин Дублин
Автор

так вы поясните нам, невникающим, в чём суть? Я чувствую, вы что-то хотите сказать, но словами выразить не можете. У предыдущего комментатора была претензия по скорости, что клауд даёт задержку аж 10 секунд. Я на скирншоте из живого проекта показываю, что такой проблемы нет.
А ваша-то проблема в чём? Нам же правда интересно, а вы как-то вокруг да около ходите, делая многозначительные намёки. Может быть пора уже клауд сворачивать? Вы скажите, я им сразу письмо напишу, чтобы закрывались 😂

Ответить
Развернуть ветку
Вениамин Дублин
Автор

он не так хорошо, он ещё лучше 😂

Ответить
Развернуть ветку
Anton S

Вениамин, благодарю за твой вариант настроек. Вопрос: ты ставишь в СКИП все галки, я ставлю только первую. Зачем все? Что они в итоге делают? Спасибо за ответ.

Ответить
Развернуть ветку
Артур Малосиев

Автор, это не первая инструкция на виси про СФ. Вы решили проблему, но в чем сама проблема не описали.

Зашел бот покрутить ПФ - и что?

Ответить
Развернуть ветку
Дмитрий Синица

Проблема в том, что боты выполняют свои задачи на вашем сайте и на вас и на сайт им наплевать. Могут ПФ крутануть не туда, могут перегрузить хост, как вариант.

Ответить
Развернуть ветку
Артур Малосиев

ПФ не может перегрузить хост: это не ддос.

Эти боты не вредят. Просто существуют. Ваша инструкция - как лечить рак содой.

Если посмотреть в вебвизоре, то эти боты тупые реально, могут абзац читать 7 минут. Яндекс, для которого это все создано, понимает, что такое поведение ненормально и посылает на страницу толокеров.

Итог: проблема не существенна. Но ваши советы заблочат 30% живых пользователей.

Ответить
Развернуть ветку
Дмитрий Синица

Артур, вы уверены в том, что пишите? Во первых инструкция не моя. Второе, как можно сравнить конкретную задачу - устранение ботов с псевдонаучными медицинскими практиками!? ПФ не может перегрузить ибо это фактор и бот не может, если он 1, а 100 в минуту ваш хостинг переварит? Не говоря о влиянии ПФ на сайт.

Ответить
Развернуть ветку
antiddos24

Заголовок не соответствует содержанию. Этот набор к поведенческим ботам вообще никакого отношения не имеет.
К сканерам парсерам да, по HTTP1 часть ходит.
А поведенческие по HTTP2.

Ответить
Развернуть ветку
Михаил Тел

Отличные рекомендации, настроил и сервер задышал!

Ответить
Развернуть ветку
17 комментариев
Раскрывать всегда