Добрый вечер, есть сайт-галерея dota.gallery на Yii2 ( ~150 посетителей в неделю), раньше при просмотре какой-либо картинки при каждом обновлении страницы кол-во просмотров этой картинки увеличивалось на единицу. Я решил это исправить и сделал таблицу, которая хранит информацию о том, кто и какую картинку смотрел.
Изначально идентификатором для пользователей (
user_id ) я решил делать случайное число, которое записывалось в переменную сессии $_SESSION (да, решение не идеальное, но при такой посещаемости - оптимальное). На всякий случай проверил работоспособность системы в браузере Тор. Только после этого я обнаружил, что сайт находится под круглосуточной "атакой" и после этого добавил в таблицу ip и дату просмотра картинки.
На скриншоте
видно, что запросы
невероятно частые и что не менее важно, даже при одинаковом ip у запросов разные
user_id то есть у каждого запроса новая сессия. На условную тысячу запросов на просмотр картинок приходится условные 200 разных ip-адресов и
тысяча разных сессий. В сутки таких запросов не менее трёх тысяч, при этом Яндекс.Метрика показывает 20-25 посетителей.
Пока что я сделал заглушку из условия, мол если у
user_id нет в истории хотя бы двух просмотров, то его просмотры не учитываются, но на этом мои способности всё.
Как с этим бороться? Откуда взялись эти роботы в таком количестве и что они вообще у меня забыли?
И самое главное: как сделать систему, которая будет учитывать только просмотры реальных людей хотя бы в большинстве своём?