Как программно определить боты
У нас есть ситуация, когда мы регистрируем посещения и посетители на страницах, и боты забивают нашу базу данных. Мы не можем использовать капчу или другие методы, подобные этому, потому что это еще до того, как мы даже попросим человека внести свой вклад, в основном мы регистрируем хиты страниц, и мы хотели бы только регистрировать хиты страницы людьми.
Есть ли список известных ботов IP? Работает ли проверка известных пользовательских агентов бота?
Ответы
Ответ 1
Нет надежного способа поймать всех ботов. Бот мог действовать так же, как настоящий браузер, если кто-то этого хотел.
Большинство серьезных ботов четко идентифицируют себя в строке агента, поэтому со списком известных ботов вы можете выбрать большинство из них. В список вы также можете добавить некоторые строки операторов, которые по умолчанию используют некоторые библиотеки HTTP, чтобы поймать ботов у людей, которые даже не знают, как изменить строку агента. Если вы просто регистрируете строки агентов посетителей, вы должны выбрать их для хранения в списке.
Вы также можете сделать "неудачную ловушку бота", поместив скрытую ссылку на свою страницу, которая приведет к странице, отфильтрованной в файле robots.txt. Серьезные боты не будут следовать ссылке, и люди не могут на нее нажимать, поэтому только бот, который не соответствует правилам, запрашивает файл.
Ответ 2
В зависимости от типа бота, который вы хотите обнаружить:
Ответ 3
Я думаю, что многие боты будут идентифицироваться пользовательским агентом, но наверняка не все из них. Список известных IP-адресов - я бы тоже не рассчитывал на это.
Эвристический подход может работать. Боты, как правило, намного быстрее по ссылкам, чем люди. Возможно, вы можете отслеживать каждый IP-адрес клиента и определять среднюю скорость, с которой он связан по ссылкам. Если это искатель, он, вероятно, следует за каждой ссылкой сразу (или, по крайней мере, намного быстрее, чем люди).
Ответ 4
Я не думаю, что будет список IP-адресов Botnet, IP-адреса Botnet не являются статическими, и никто не знает, кто такие боты, включая пользователей, которые ведут себя как боты.
Ваш вопрос - это, вероятно, горячая область исследований прямо сейчас, мне любопытно, может ли кто-то дать решение этой проблемы.
Вы можете использовать любую технику и понимать, является ли это человеком или нет, тогда вы можете получить журналы.
Ответ 5
Вы уже добавили robots.txt? Хотя это не решит проблему использования вредоносного бота, вы можете быть удивлены законной действительностью обхода, уже имеющейся на вашем сайте.
Ответ 6
вы можете использовать Request.Browser.Crawler для обнаружения программных роботов;
желательно сохранить список узнаваемых сканеров в актуальном состоянии, как описано здесь
http://www.primaryobjects.com/cms/article102.aspx