Задать вопрос
alexanderkx
@alexanderkx

Что делать с парсерами, которые долбят сайт?

Таки столкнулся с жёстким парсингом своего сайта (или чем-то другим).

Ситуация такая. Проект начинает быть весьма полезным и посещаемым. Имеется кнопка на странице, по клику на которую подгружается таблица с достаточно полезной информацией.

Сделал таким образом:
На кнопке есть data-url="/id/145", и соответственно при клике js-ом подгружаю результат обращения к этой странице.

Статистика показывала, что нажимали примерно раз в 20-15 минут. Что вполне пропорционально посещаемости. Сегодня увидел жуткую картину - в минуту по 5-10 обращений с разных ip (штук 15-20 чередуются).

Ладно думаю. Скорей всего тупо взяли site.com/id/145/ и меняют id-шку. Сделал небольшую проверку. При заходе на сайт генерируется некий хэш и при обращении к /id/ проверяется нажал ли пользователь на кнопку, или напрямую перешёл на /id/145/. Но ничего не поменялось :( Стало быть каким-то образом происходит имитация нажатия на кнопку.

Что можно сделать? ) Инфы то не жалко, просто засоряют жутко реальную статистику.. Да и не хорошо как-то получается.
Благодарю.
  • Вопрос задан
  • 644 просмотра
Подписаться 3 Оценить 7 комментариев
Решения вопроса 1
Rou1997
@Rou1997
HTTP-заголовки смотрите, по ним и по JS определите, действительно ли браузер или все-таки 'raw HTTP", если первое, то защита на фронт-енде должна быть, если второе, то на бек-енде, суть защиты - вносить изменения, которые не способен обработать парсер, но, грубо говоря, если очень захотят, то хоть каждый день будут "чинить" своего бота, оставили бы вы их в покое.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@vshvydky
ребят вы фигню ему советуете все. я как человек, который порой парсит знаю, нет нормального пути защиты, ну нет и все тут.
Из рекомендаций:
1. всякие рекаптча , каптча и тп можете не включать, будете раздражать реальных пользователей, а 5 -10 копеек и бот вашу каптчу, рекаптчу разгадает. Не работает эта защита.
2. Если вы видите бота, который по всем признакам браузер, возрадуйтесь и покажите ему рекламу. Будете на этом зарабатывать.
3. Все парсеры привязаны к цсс селекторам и выдергивают данные из них, вы можете строить такие селекторы динамически, максимально их видоизменяя. Возможно это будет напрягать ваших обидчиков.
4. Вы можете лимитировать отдачу для пользователя Н раз в / минуту / час / 2 часа / сутки , далее составлять блоклист и в бан.
5. Вы можете пройти по всем бюджетным прокси сайтам, и там где дешево купить себе адреса проксей, получить их списки и сразу их внести в бан. Чаще всего парсят с говнопроксей.
6. Подкрутить днс бл к адресам.
7. Проверять не ведут ли клиентские адреса на хостинги датацентров, где впс, вдс стоят. Чаще всего прокси продают именно с диапазонов хостинг провайдеров, а значит их легко вычислить.
8. Возможно самый полезный инструмент ,введите фингерпринт в токены к своей регистрации / авторизации. В результате даже если используются разные прокси адреса, отпечаток фингерпринта будет совподать. А далее слишком много запросов, 1 и тот же фингерпринт, адреса чередуются, роутятся на хостинги, прямой путь в блек лист.
9. Боремся с любителями курла: я понимаю, это еще тот геморой, так как почти все шаманства можно разгадать и впулить как пост запрос, но все же, как бы я это делал: токен на минимальную сессию, 10 - 15 минут, в токене фингерпринт, и чтобы получить токен надо сперва пройти ритуал js монитринга в браузере, если этого не случилсь, токен не выдавать. Какие бывают мониторинги, фингерпринт по наложению эффектов на свг изображение, далее съем мд5 отпечатка, сбор информации о установленных шрифтах, сбор данных от навигатора о плагинах и миме типах. проверка соответствия юзерагента поведению браузера. и что еще больше испортит жизнь ботопарсеру, это чтобы ссылки для него менялись каждый раз как и токен. Гемороя много, но думаю после этого вас парсить не захотят.
Но я за то , чтобы отдать боту то, что он найдет если не у вас, то у вашего конкурента, но вы ему впулите много много рекламы.
Удачи.
UPD:
Подцепляешь сокеты и следишь за пользовательским поведением, изменение курсора мыши, пробег мыши на сайте, скроллинги, клики и тп, если кликается, то в это время позиция курсора внутри элемента или нет?

есть еще один момент, который может помочь, но я не скажу, я его сам боюсь ))))
Ответ написан
Комментировать
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Если заморочится и добавить возможность сторонним сервисам запрашивать данные по rest и повесить на сайте к этому доку, нагрузка от парсеров снижается
Ответ написан
Комментировать
@PooH63
Как вариант cookie + csrf. Пока не сверятся ключи, не вызывать эвент отвечающий за статистику
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы