Лучший способ обнаружить бота из пользовательского агента? - PullRequest
10 голосов
/ 05 ноября 2010

Время идет, но все еще нет идеального решения ... Посмотрите, есть ли у кого-нибудь блестящая идея отличить бот от загруженной человеком веб-страницы?Ультрасовременный пользователь все еще загружает длинный список известных ботов SE и разбирает ПОЛЬЗОВАТЕЛЬСКИЙ АГЕНТ?

Тестирование должно быть выполнено до загрузки страницы!Никаких картинок и картинок!

Ответы [ 9 ]

4 голосов
/ 05 ноября 2010

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

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

3 голосов
/ 05 ноября 2010

Без проблем (как CAPTCHA) вы просто стреляете в темноте. Пользовательский агент может тривиально установить любую произвольную строку.

1 голос
/ 05 ноября 2010

То, что сказали другие, в какой-то степени верно ... если бот-производитель хочет, чтобы вы думали, что бот является подлинным пользователем, то избежать этого невозможно. Но многие популярные поисковые системы идентифицируют себя. Здесь есть список (http://www.jafsoft.com/searchengines/webbots.html) среди других мест. Вы можете загрузить их в базу данных и искать их там. Я, кажется, помню, что против пользовательского соглашения Google создавать пользовательские страницы для своих ботов.

1 голос
/ 05 ноября 2010

Я сам кодирую веб-сканеры для разных целей.И я использую веб-браузер UserAgent.

Насколько я знаю, вы не можете отличить ботов от людей, если бот использует законного UserAgent.Как:

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.570.1 Safari/534.11

Единственное, о чем я могу думать, это JavaScript.Большинство пользовательских веб-ботов (например, те, которые я кодирую) не могут выполнять коды JavaScript, потому что это работа браузера.Но если бот связан или использует веб-браузер (например, Firefox), он не будет обнаружен.

1 голос
/ 05 ноября 2010

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

1 голос
/ 05 ноября 2010

Пользовательский агент устанавливается клиентом и, таким образом, им можно манипулировать. Таким образом, злонамеренный бот, конечно, не отправит вам пользовательский агент I-Am-MalBot, а назовет себя некой версией IE. Таким образом, использование User Agent для предотвращения спама или чего-либо подобного бессмысленно.

Итак, что вы хотите сделать? Какова ваша конечная цель? Если бы мы знали это, мы могли бы помочь лучше.

0 голосов
/ 07 марта 2014

Честные боты, такие как поисковые системы, обычно получают доступ к вашему robots.txt. Из этого вы можете узнать их строку useragent и добавить ее в список ботов.

Понятно, что это не помогает злонамеренным ботам, которые притворяются людьми, но для некоторых приложений этого может быть достаточно, если все, что вы хотите сделать, это отфильтровать ботов поисковой системы из ваших журналов (например).

0 голосов
/ 05 ноября 2010

Я бы предложил использовать Akismet , плагин для предотвращения спама, а не какой-либо трюк с Captcha или CSS, потому что он очень хорош для ловли спама, не портя пользовательский опыт.

0 голосов
/ 05 ноября 2010

Я уверен, что собираюсь взять голосование по этому вопросу, но я должен был опубликовать его: Конструктивный

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

- Редактировать -

Я только что заметил ваш PS, и я не уверен, что в любом случае диагностировать бота без взаимодействияс этим.В этом случае лучше всего подхватить ботов как можно раньше и ввести ограничение IP на 1 месяц, после чего BOT должен отказаться, если вы постоянно возвращаете ему HTTP 404.Боты часто запускаются с сервера и не меняют свой IP, поэтому это должно работать как посредственный подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...