Я сталкивался, только с двумя поправками:
1) Максимальный трафик ботов в день был около миллиона хитов.
2) Боты были всех мастей и страстей.
А ну да - и по времени эта канитель длится годами с переменным успехом.
Для начала любыми способами найдите статистику которая позволяет группировать пользователей по сессиям, хитам и выводит IP-адреса.
Я начинал с того, что отсекал ботов с одной сессией и большим числом хитов. Они сидели в дата-центрах.
Тут по соседству есть скрипт который блочит 20 с чем-то тысяч IP и подсетей всех ЦОД-ов мира. Это можно делать и руками, заблокировав 10-20 крупных дата-центров.
Этот шаг помогает против ботов СИЛЬНО.
Теперь по php скрипту - тестирую его второй день.
Мое мнение - это вторая линия обороны, ограничение http/2 включать нельзя - толку нет, а юзеры не доходят. Скажем так, процентов 30 от оставшихся он отсекает.
Но те что вас беспокоят, остаются и останутся, потому что скрипт довольно-таки простенький, он от парсеров, а не от вредителей.
Попробуйте поставить задержку на счетчик метрики рандомом, это добавит хаоса.
Вообще попробуйте поработать в направлении вывода метрики по каким-то правилам, которые позволяют вам понять, что перед вами робот, а не человек.
Если закупаете трафик - попробуйте задействовать UTM метки чтобы показывать счетчики тем, за кого вы заплатили. Правда, среди кликающих около 30% ботов.
И кстати, крепко подумайте над тем, чтобы по возможности закрыть свой сайт от Украины.
Ну пока что поставили Antibot - смотрю на эффект.
Первый день показал, что там конечно очень много ботов отсеклось, но мне нужно дополнительно использовать проверку на репутацию по IP-адресам, и вот этим товарищам подсовывать капчу.
В принципе, в антиботе есть какой-то обработчик, который умеет смотреть наружу, и если его натаскать на DNS того же smaphouse, то можно получить полную защиту, которую я и хочу в итоге. Но тут думать и программировать надо или уговорить разработчика на такой апгрейд.---------- Добавлено 16.01.2019 в 18:20 ----------
На хабре очень много теоретиков, которые слышали что-то о ddos-ах на серверы "сбербанка", а по факту не смогут даже mod_evasive настроить.
У меня простая задача: максимально усложнить жизнь ботам, которые максимально маскируются под посетителей сайта, в том числе выполняют Java, ставят куки и кликают по баннерам. Я определил, что большая часть этих товарищей лезут с непонятных IP, которые есть в базах репутации, или из стран, где про Россию не говорят даже за ужином.
Я не хочу их резать в iptables по стране или региону, потому что это некрасиво, плюс в РФ они используют публичные IP провайдеров.
Такой вариант - то!, но очень хочется community-решение с коммитами, траблшутами и прочей лабудой.
А тут один разработчик - он завтра болт положит на свой проект и придётся
1) Вспоминать где и что было проинсталлено
2) Переходить заново и начинать все с начала.
Да и правильно в комментах кто-то написал, что его парсеры спокойно обрабатывают cookie. Капча в этом случае надежнее.
Да, спортивный. Хочу самостоятельно всё настроить, чтобы выбрать только те правила, которые мне нужны.
Увидел схему, где modsecurity каждый запрос отправляет на локальный dns сервер, который кэширует RBL таблицы. И уже от его ответа идёт действие. На бумаге всё очень просто и занятно, теперь осталось только реализовать и посмотреть, будет ли это тормозить для GET-запросов.
Хорошо, тогда другой вопрос - мы можем с помощью modsecurity вырезать часть HTML кода для таких вот посетителей с подозрительных IP?
Да, нашел - можно. Основной вопрос - кто это делал?
Хорошо, допустим обработчик я придумал и написал. Вот вопрос #2 - как вместо страницы выдать капчу, а в случае если человек её проходит - выдать запрашиваемую страницу?
По ссылке они подменяют страницу на 403-ю кастомную, а дальше развития нет. Если человек с забаненого IP адреса зайдет на кастомный Access Denied, ему легче не станет. А я ищу метод чтобы собрав капчу, человек смог дальше пройти на сайт.
Задача - поставить на пути ботов, занимающихся накрутками и скрапингом, труднопроходимое препятствие.
К сожалению, многие боты ходят с IP адресов beeline и обычных провайдеров, так что банить их целиком - не самое лучшее решение. А так, используя IP reputation, можно подозрительным категориям подсовывать капчу перед заходом на целевую страницу, и я как раз хочу сделать подобное решение.
В общем, пока мысль такая - поскольку insight имеет погрешность 30-50%, предвижу новую SEO-услугу: повысим статистику пользовательской загрузки, будем заходить на сайт с мощных смартфонов, прямо возле вышек сотовой связи, чтоб грузить сайт с мобилки со скоростью 70-80 Мбит/с, и всё закэшируем.
Если в hosts добавить 127.0.0.1 на фейсбук и вконтакт, то стату можно сильно накрутить.---------- Добавлено 31.12.2018 в 16:44 ----------
А вообще солюшн достаточно простой:
американский хостинг + lazzy подгрузка всего что только можно + включение кэша на уровне 300+ дней.
Если народ не будет менять мобилки как перчатки, то сработает.
Кстати, не удивлюсь если Android научится синхронизировать кэш браузера при переходе на новый смартфон.
Ну я так смотрю - из виджетов ни у кого нет gzip, ни у фейсбука, ни у вконтакта, ни у яндекса с гуглем.
Видимо сильно процессоры грузит.
Тогда вопрос - что на мобильном важнее - наличие комментов, дающих оживление и ПФ, или отсутствие комментов, дающее 20 очков в pagespeed?
Речь идет исключительно о виджете вконтакта.
я правильно понимаю, что стучаться во вконтакт и просить их сделать lightweight скрипт со сжатием и асинхронной загрузкой бесполезно?