Как я могу обнаружить ботов программно - PullRequest
14 голосов
/ 05 мая 2010

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

Существует ли список известных IP-адресов ботов? Работает ли проверка известных бот-агентов?

Ответы [ 6 ]

19 голосов
/ 05 мая 2010

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

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

Вы также можете сделать «ловушку для плохого бота», разместив на своей странице скрытую ссылку, которая ведет на страницу, отфильтрованную в вашем файле robots.txt. Серьезные боты не следуют по ссылке, и люди не могут щелкнуть по ней, поэтому только бот, который не следует правилам, запрашивает файл.

9 голосов
/ 05 мая 2010

В зависимости от типа бота, который вы хотите обнаружить:

1 голос
/ 15 октября 2012

вы можете использовать Request.Browser.Crawler для программного обнаружения сканеров;

желательно обновлять список распознанных сканеров, как описано здесь http://www.primaryobjects.com/cms/article102.aspx

0 голосов
/ 05 мая 2010

Вы уже добавили robots.txt ?Хотя это не решит проблему злонамеренного использования ботов, вы можете быть удивлены тем, что на вашем сайте уже совершено законное сканирование.

0 голосов
/ 05 мая 2010

Не думаю, что будет список IP-адресов ботнетов, IP-адреса ботнетов не являются статичными, и никто не знает, кто такие боты, включая пользователей, которые ведут себя как боты.

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

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

0 голосов
/ 05 мая 2010

Я думаю, что многие боты могут быть идентифицированы пользовательским агентом, но, конечно, не все из них. Список известных IP-адресов - я бы на это тоже не рассчитывал.

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

...