Лучший способ обнаружить бота из пользовательского агента?

Время идет, но все же нет идеального решения... Посмотрите, есть ли у кого-то яркая идея отличить бота от загруженной человеком веб-страницы? Современное состояние по-прежнему загружает длинный список известных SE-ботов и анализирует USER AGENT?

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

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

Я сам кодирую веб-сканеры для разных целей. И я использую веб-браузер 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), то он не будет обнаружен.

Ответ 6

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

Ответ 7

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

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

- Изменить -

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

Ответ 8

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

Ответ 9

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

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