Альтернативный вариант вместо блокировки IPv6 адресов

Есть у меня несколько сайтов, которые сделаны для себя. Особенного в них ничего нет. Информация вполне простая и вряд ли несет в себе большой глобальный смысл. Посещаемость у таких сайтов почти отсутствует: зайдут два-три человека в день и на этом все. Но недавно начался буквально взрывной рост. Сперва двадцать человек пришло, потом сорок, потом еще больше и еще больше. Кто это и что это?

Вообще, такая посещаемость — это норма. Правда в том случае, если вы что-то сделали для этого. Например, выложили какую-то полезную статью или попали в тренд, это заметили поисковики и стали показывать ваши труды в результатах поиска. Однако в моем случае все не так. Не было никаких статей, не было никаких условий для раскрутки, в общем, ничего для продвижения не предпринималось. И с чем можно связать такой рост посещаемости было не понятно.

Стало любопытно, кто же проявляет такую активность: люди или боты? Чтобы это понять используем несколько простых инструментов. Для начала посмотрим на данные счетчика. В моем случае это Яндекс.Метрика. Открываем Вебвизор и смотрим на посетителей. Почти все они пришли с мобильных устройств, активность в районе минуты. Ничего путного не делали: открыли страницу, подождали, пролистали, может быть зашли на другую страницу и там такое же поведение. Вряд ли бы люди вели себя так однообразна. Значит имеет дело с ботами.

Яндекс.Метрика: вебвизор

К сожалению Яндекс.Метрика ничего не могла сказать про IP этих «товарищей». У всех одна IP-сеть: «IPv4 address block not managed by the RIPE NCC». Так что воспользуемся вторым инструментом: откроем лог веб-сервера access_log. Находим по дате и времени того, кто к нам пришел и смотрим на его IP-адрес.

2a09:a4c7:4965:45a8:a62f:64e6:df9c:226d — — [08/Mar/2021:04:50:31 +0300] «GET / HTTP/1.1» 200 0 «-» «Mozilla/5.0 (Linux; Android 8.0.0; AUM-L41) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Mobile Safari/537.36»

Самое первое в этой строке до тире – это IPv6 адрес. Блокировать такой адрес средствами веб-сервера немного не просто. Но можно. Так что я решил просто заблокировать все запросы с этого адреса. Благо, только с него вся эта суета и была.

Мое спокойствие продлилось где-то часов десять. После снова всплеск посещаемости и снова все запросы идут с IPv6 адресов. Теперь уже их стало два. Ладно, где один там и два, и три – в блокировку ушли и другие два товарища. Но это тоже не помогло, так как добавились очередные адреса и уже даже пошло разнообразие – сменилась подсеть.
Блокировать все IPv6 адреса не хотелось. Нужно было какое-то другое решение. И я избрал программный путь. Благо все запросы все равно ведут на один php-файл. Вот пусть он и разрулит ситуацию: все странные ip-адреса будут проверяться по маске и редиректом отправляться на известный сайт с известным содержимым. И такое решение действительно помогло примерно на сутки. Активность ботов удалось снизить.

Яндекс.Метрика: вебвизор

Вроде бы не плохое решение, но оно тоже временное. Потому что авторы ботов не оставляют свою жертву просто так. Они начинают долбить с других сетей, в основном мобильных операторов. На первом месте Megafon, на втором (гораздо реже) Tele2. Отключить всех посетителей мобильно трафика от сайта вообще не вариант. Даже если этот сайт и так почти никто не посещает.
Спросил интернет, что делают в таких случаях. Советы дают разные, но все они так или иначе сводятся именно к блокировке, составлению разных список и фильтров. И большинство пытается именно заблокировать этих «товарищей». Я решил, что постоянная блокировка это не мой вариант. Не хочется постоянно сделать за тем, кто зашел на сайт — бот или человек. Лучше уж просто боту не давать код счетчика.

Тогда получаем примерно следующее:
а) Бот видит, что его не блокируют;
б) Бот получает содержимое страницы;
в) Бот даже эмулирует действия пользователя. Но так как счетчика на странице нет, то такое посещение не засчитывается.

Как по мне, это профит. Так что небольшой скрипт, в который я загнал основные сетки, откуда долбили меня боты, был написан и размещен на сайте. И по итогу все заиграло иными красками. Теперь «левые заходы» из IPv6 случаются крайне редко. Если кто-то все же зашел, то он пополняет список тех, кто не должен видеть счетчик. Но в статистике периодически присутствуют проверяющие боты – те, кто видит, что содержимое страницы для одного бота отличается от содержимого для другого бота. Такие контрольные проверки случаются и даже несколько раз в день. Но здесь уже сами решите терпеть их или нет. Заходят «проверяльщики» из уже озвученных мобильных сетей. Я их трогать (пока) не стал – пусть видят, что основные их коллеги своей цели не достигают.

Собственно, про цели. А зачем это все? Например, для того, чтобы понизить сайт в результатах поиска. Так как поисковики с помощью счетчиков оценивают поведение посетителей, то действия на сайте, которые ровным счетом ничего не дают, сообщают поисковику, что сайт сделан плохо. И тогда не нужно показывать его где-то в первых результатах выдачи. Иными словами, идет пессимизация конкурента. А такие сайты как мои, где и без того никого нет, служат не плохой площадкой для тестов бота.