Как определить, является ли посетитель человеком, а не пауком

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

  • если посетитель зарегистрировался и прошел captcha
  • обнаружение событий мыши
  • Обнаружение, если у пользователя есть браузер [пользовательский агент]
  • обнаружение щелчков мыши [как я могу это сделать?]

Есть ли другие верные способы определения, является ли посетитель человеком?

Ответ 1

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

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

Вредоносные роботы, с другой стороны, собираются подделывать любые "UserAgent" и подобные заголовки.

Captchas, вероятно, лучший метод, но они могут P * ss выключать не роботы, если они используются.

Один скрытый метод, который я видел, состоит в том, чтобы иметь рекурсивную ссылку в качестве первой ссылки на странице, которая отправит искателя в цикл. Другой - иметь ссылку на сайт, который вам не нравится, в качестве первой ссылки на странице, чтобы отвлечь внимание роботов. Обе эти ссылки легко могут быть "невидимы" для агентов на основе мяса.

Ответ 2

a new captcha approach

Комическая полоса от XKCD.

Ответ 3

Самый надежный способ обнаружения пауков - по IP-адресу. Общие пауки используют несколько широко известных IP-адресов. http://www.iplists.com/nw/

Ответ 4

Вы должны проверить свойство user-agent. Вероятно, вы можете выполнить это на С#.

Например HttpContext.Current.Request..., а затем попросите пользователя-агента. Это может дать вам что-то вроде crawler.google или что у вас есть, поэтому вам может понадобиться создать собственный список для проверки и возврата результата.

Ответ 5

Если вы в основном заинтересованы в проверке формы... Я бы предложил Akismet - бесплатную службу WordPress для поиска спама. Он работает очень хорошо.

Если вы пытаетесь сохранить сервер в некоторой полосе пропускания... вопрос совершенно другой, и я бы, вероятно, пошел другим путем, как предотвращение горячей ссылки.

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

Ответ 6

Если вы идете по пути Captcha, вы всегда можете использовать невидимый Captcha.

В основном создайте элемент управления ввода с меткой, обозначающей, что такое 5 + 2, а затем используя javascript, решите это и введите значение в текстовое поле, затем спрячьте текстовое поле. Почти все пауки не могут запускать Javascript, любой обычный пользователь, которого они даже не знают, что происходит, и любой пользователь с Javascript просто видит, что поле заполняется.

Google Analytics также работает на JS, чтобы вы могли просто использовать это?

Ответ 7

Вы можете захотеть заглянуть в HttpCapabilitiesBase Class, есть некоторая помощь в полных свойствах, которые вы можете использовать, и людей, которые просматривают ваши сайт не заметит.

Например, Browser, Crawler и, возможно, Cookies. Существует много способов, но для этого вам потребуется немного работы с вашей стороны.

Ответ 8

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

И вы хотите полностью блокировать пауков или просто игнорировать их в своих журналах?

Google Analytics - хороший пример игнорирования ботов, управляемый JavaScript.

Это может быть ваше решение. Для отправки запроса на ваш сервер, который зарегистрировал поражение страницы, вам понадобится событие on load.

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

Ответ 9

Сделайте пользователем awnser вопрос вроде "Что такое 3 + 5?"

Ответ 10

Помните, что все, что вы делаете, затрудняет автоматическое выполнение этого процесса, не означает, что вы полностью его предотвращаете.

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

Ответ 11

С помощью форм вы можете использовать javascript, чтобы изменить действие формы, чтобы указать на настоящий URL-адрес. Это отфильтрует любого бота, который не отображает страницы с javascript. У вас может быть несколько кнопок отправки, где только один из них действительно работает, а затем вы скроете всех остальных с помощью css. Боты не будут знать, что нажать первым. Если вы когда-либо получаете клик от одной из фиктивных кнопок, вы знаете, что у вас есть бот.

Ответ 12

Используйте Captcha или используйте Javascript для проверки. Огромный процент ботов не оценивает Javascript.

Ответ 13

Вы можете очень точно определить ботов/искателей знаний, используя строки агента пользователя. "плохие боты" требуют honeypot или подобное решение. Оба объяснялись в моем ответе здесь:

Обнаружение честных веб-сканеров

IP может быть изменен и ненадежен.

Мы также видим, что боты (хорошие и плохие), как правило, не поддерживают javascript.