Отличить бота от человека
Подскажите пожалуйста как можно отличить запросы к сервлету бота от человека.
Ситуация такова, что ко мне на сайт логинится бот. Собирает информацию, доступную залогиненым пользователям, и публикует у себя на сайте.
Я так понимаю, что он при логине берет ID сесси и подставляет его в следующие свои запросы.
Какие есть способы распознать бота? Прямые или может коственные.
Если вручную понимаешь что это бот и знаешь примерно время через которое твоя информация появляется у него на сайте, то подсунь ему какую-нибудь ахинею, чтобы убедиться и прикрой ему доступ по логину и IP. Вот если логин, браузер и IP всё время меняется… Тут уже нужно применять методы физического воздействия. Например, морду бить.
он не по ссылкам ходит(
Он долбит мой сервлет, который JSON-ом возвращает данные.
Частота запросов такая же как у обычного пользователя. Запрос стандпртный.
Если вручную понимаешь что это бот и знаешь примерно время через которое твоя информация появляется у него на сайте, то подсунь ему какую-нибудь ахинею, чтобы убедиться и прикрой ему доступ по логину и IP. Вот если логин, браузер и IP всё время меняется… Тут уже нужно применять методы физического воздействия. Например, морду бить.
Например, морду бить))) ну это самое первое чего захотелось.
Ип меняет постоянно, залогиненный пользователь тоже.
Можно не отвечать на JSON запросы, которые не соответствуют полученной странице. То есть, если он не запрашивал страницу с которой может быть послан этот JSON, то надо запрос игнорировать или же послать какой-нибудь бред, чтобы пока автор бота не спохватится отомстить (это конечно не морду набить, но репутацию сайта подпортить можно).
А толку? Хозяин бота же сам логинится, если я правильно понял всю эту конструкцию.
Автор, хоть адресок скажи, где у тебя эта конструкция работает. Может рассмотрение ближайшее поможет лучше придумать что-нибудь.
Топикстартер не написал логинятся ли бот сам или ему помогает человек. В первом случае мой способ поможет. А вот втором:
Это если бот просто посылает json, вместо того, чтобы открывать страницы по-нормальному.
Я тоже так понял..
Не понятно в ответ на что посылает. Имею ввиду при нормальной работе..
Вобщем, ТС, можешь показать где это все работает. А то так гадать - бессмыслено
Это если бот просто посылает json, вместо того, чтобы открывать страницы по-нормальному.
Не важно как он логинится. Если я не смогу его отличить от обычного пользователя, то он должен будет залогинеться только один раз. А далее использовать ID этой сессии.
Запросы корректны для полученой страницы. REFFERER такой как должен быть. Его хидер запроса полностью идентичен хидеру, который я могу наблюдать в фаербаге. С точностью до ID сессии.
Не понятно в ответ на что посылает. Имею ввиду при нормальной работе..
Вобщем, ТС, можешь показать где это все работает. А то так гадать - бессмыслено
К сожалению, по некоторым причинам не могу(
Вы все правильно поняли.
Клиент джаваскриптом дергает мой сервлет. Получает JSON-ом данные. Дергается он довольно часто. Приблизительно 5 раз в 2 секунды.
Есть ли такая возможность? Как ее можно реализовать?
Может есть еще неординарные идеи?
Итак, чем отличается бот от живого юзера? Самое главное отличие: у него нет мыши! Человеку, чтобы перейти на другую страницу, нужно как минимум кликнуть по ссылке. Бот этого не делает.
Автор, передавай аяксом серванту событие движения мышью после открытия страницы. Там пиши в сессию, типа "ok". И отслеживай в сессии: как только пару раз совершил переход без движения мышью - бот.
любому юзеру выдается SID в любом случае, так вот этот SID js-ом добавлять ко всем урл-ам и запросам, sid - есть человек, нету -БОТ..
Обычно боты без ЖС-а
Почитай ещё раз внимательно: у него JS-ом запрашивается данные с сервлета. Соответственно, бот имеет JS.