Обнаружить среди посетителей сайта автоматический парсер

Обнаружить среди посетителей сайта автоматический парсер

Ресурс этот конечно пока что вообще никак не раскручен, но как я понял, моим сайтом хотят воспользоваться для его наполнения контентом с целью дальнейшей монетизации.

Подскажите, каким образом можно выловить подобные штуки? Может, есть какой-то анализатор для Apache или nginx? Как вообще лучше действовать в этой ситуации?

  • Вопрос задан более трёх лет назад
  • 11555 просмотров
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

Мдя… Ну давайте проведем эксперимент.

Если зайти с браузера и несколько раз обновить, то идентификатор не измениться. А вот если я попробую curl:

По вашем словам — первый раз сайт отдаст контент боту, а последующие нет. Так вот в этом случае для меня каждый раз будет первым.

Мораль: перед тем как что-то советовать — проверяйте на практике.

То есть теперь вы предлагаете где то хранить все эти сессии для дальнейшего анализирования) Интересно, не заметил этого в первом посте. Собирать данные для анализа — это уже совершенно другое решение. Вы же говорили о быстром бане, который ни к чему бы по сути не привел.

Автору поста: вы отдаете себе отчет, что заблокировав этого бота, вы можете случайно перекрыть доступ для поисковых движков? Если ваш форум вылетит из поисковиков, то посещаемость может ощутимо упасть.

Если вы говорите о сессиях php, то они ну просто очень удобно храняться для анализа…

И, наверное, по вашей логике еще не чистятся. Ну и подскажите мне, как бы вы анализировали эти динамические данные)

Поверьте, я вижу решение. Решение как раз и состоит в сборе статистики. Только анализировать нужно глубже. Вы же сейчас просто пытаетесь оправдать свое решение, которое я, в свою очередь, считаю непродуманным до конца.

Я бы так же разместил картинку с display:none (правда немного хитрее) и начал бы собирать статистику по сессиям в базу данных (с этими данные потом работать проще, не нужно ничего парсить). Учитывал бы такие значения как referer, user agent, ip, время захода. Имея эти данные на руках можно вычислить бота.

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

Смысл в том, что я хочу для начала собрать статистику, о которой как раз говорится выше (user agent, ip, время, referer). Чтобы понимать, что за боты вообще заходят на сайт. Никаких автоматических блокировок я делать не хочу, т.к. есть вероятность, что будет заблокирован кто-то не тот.

  • Facebook
  • Вконтакте
  • Twitter

Можно обойти любую фильтрацию, но есть некоторые признаки, которые могут отсеять явных ботов 1. переменные окружения — почему-то ленятся скопировать результат запроса типичного браузера 2. скорость клика — боты либо быстрые, либо регулярные. Делаете порог для html запросов в минуту или считаете вариативность задержек между запросами. 3. скачивание/нескачивание контента — обычный браузер качает картинки, css и прочее, но тут есть тонкости — например некоторые браузеры стали оптимизировать и не запрашивают невидимый контент. Но явно нужный css например хороший триггер для человека 4. Прокликивание ссылок — делаете ссылку со страницы, которую пользователь не может нажать и готовый триггер для бота. Для надежности делаете рандомные место, класс и параметры ссылки 5. Javascript — большинство ботов его не выполняет, но есть и пользователи без него. Делаете по загрузке страницы запрос на css, например, что будет условным триггером для человека.

В общем делаете фильтр, который проверяет кучу признаков и по сумме решает что это бот — дальше либо в сессии, если есть такие, выдаете ему всякую фигнгю, либо рубите. Если нет сессий, то создавайте правило в iptables/pf/ipfw что у вас там для данного ip на час-два-сутки.

Надо сказать пару слов о нужных ботах — спайдеров поисковых машин, можно предварительно отфильтровать ip адреса по user-agent, но есть вероятность что под них маскируются ненужные боты. Так что их надо модерировать, прежде чем заносить в белый список.

  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter
  • Facebook
  • Вконтакте
  • Twitter

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

Можно попробовать связаться с этим ксероксом и предъявить. Пусть хотя бы случайных пользователей подставляет. Пусть ссылку на вас поставит где-нибудь внизу. В общем, какой-нибудь профит поиметь.

📎📎📎📎📎📎📎📎📎📎