Защита сайта от прогрева и скрутки ПФ сайта
Уже далеко не редкость, когда свои проекты можно обнаружить в различных баз прогрева или сервисов тематических редиректов. Мало приятно, когда фиксируешь большую ботовую активность прогрева через ваш сайт. Также, некоторые накрутчики смело пытаются скрутить конкурентна, т.е. вас, прямыми заходами до 15 сек по визиту.
Да простят меня те, кто греет через IPv6.
В данной статье описываю простой и бесплатный способ организовать первый базовый барьер защиты собственного сайта.
Повторюсь! Это базовый барьер и не 100% способ защиты. Хорошо прогретые профили пропустит через поиск. Но часть ботов сможет удержать.
Данная защита базируется на бесплатном тарифе сервиса Cloudflare. Если не знаете, как подключить ваш домен к сервису, гуглите, есть много мануалов.
Настройка фильтров Cloudflare
Базовая блокировка ботоводного трафика происходит через настройки фильтрации в разделе – Security” – “WAF”
Используем 4 правила фильтрации. 3 обязательных +1 необязательный.
Правило 1. Проверяем всех, кто пытается зайти на сайт через HTTP (намеренно вводя адрес сайта без безопасного соединения) или используя IPv6 (попытки доступа через IP-адрес сайта).
Правило 2 . Задаём условия для безопасного доступа на сайт для проверенных ботов, таких как поисковые системы, Яндекс.Метрика и другие.
Правило 3. Проверяем прямые заходы на сайт и обращения с протоколом ниже HTTP/2, так как это часто бывает характерно для ботов.
Правило 4. Необязательное. Защита от совсем криворуких накрутчиков, которые используют любые прокси по гео, кроме РФ. Блокируем трафик из определенных стран или разрешаем его только для определенных стран.
Правило 1: Блокируем проход на сайт через http или через IPV6
Для того, чтобы перейти в этот раздел необходимо в панели cloudflare нажать на имя сайта, перейти в левом меню в нужный раздел и нажать кнопку “Create Rule” (создать правило)
В данном правиле условие будет выглядеть следующим образом:
То есть мы предлагаем пройти проверку всем сомнительным заходам, которые пытаются попасть на сайт по IP (первая строчка правила) или же не используют https.
Правило 2: Открываем доступ известным ботам
Первым шагом мы исключаем из обработки всех ботов, которые Cloudflare распознает как известных. Для этого мы отмечаем пункт “Known Bots” галочкой в настройках, как показано на рисунке ниже.
Эти боты, например, поисковые боты Google и Яндекс, считаются надежными. Установка этой настройки обязательна, чтобы не мешать поисковым системам индексировать сайт.
Во втором шаге правила мы добавляем конкретного бота Mail.ru – он является проверенным и безопасным, но не включен в список Cloudflare. Важно установить настройки, как показано на рисунке ниже.
Обратите внимание, что между этими двумя шагами стоит “Или” (Or), что означает, что для применения правила должно сработать хотя бы одно из двух условий.
Проще говоря, если Cloudflare знает этого бота или если это бот Mail.Ru, то мы пропускаем его на сайт без дополнительных проверок.
Сразу после указанных выше правил, вы увидите надпись “Expression Preview”, которая представляет собой код с выбранными условиями. В этой строке нет необходимости вносить какие-либо изменения.
Ниже мы выбираем действия для случаев, когда заходы соответствуют этим условиям. В данном случае мы просто пропускаем их (skip), не проводя никаких проверок, и отмечаем галочками все возможные проверки, которые не будут применены к тем ботам.
Другими словами, мы просто позволяем проверенным ботам, таким как Яндекс и Google, войти на сайт и не препятствуем им в работе.
После написания каждого правила необходимо нажать кнопку “Save” (сохранить).
Правило 3: Чекаем прямые заходы и обращения с протоколом ниже HTTP/2
Данное правило чуть более жёсткое чем предыдущее, и направлено на случаи, которые с большой вероятностью являются нежелательными для сайта.
Правило 4: Открываем доступ только конкретным странам
В соответствии с этим правилом, мы запрещаем доступ для всего трафика, поступающего из стран, которые нам неинтересны. Видел подобных индивидов, которые гнали трафик на ПФ по зарубежным прокси. И скрутка такая же была.
К примеру нам нужен трафик только из России, Казахстана, Белоруссии. Поэтому мы без колебаний блокируем доступ для всех остальных.
Для этого нам нужно использовать оператор AND (“и”) между правилами, поскольку мы блокируем пользователей, у которых страна НЕ Россия и НЕ Казахстан и НЕ Беларусь и так далее.
Страны могут быть добавлены через поле “Country” (“страна”) не равна (“не равна”) Российской Федерации (“РФ”).