Большинство предложений касаются проверки электронной почты и использования CAPTCHA, что, конечно, следует делать, но имейте в виду, что ни один из этих методов не является полностью пуленепробиваемым.
Подтверждение электронной почты
Бот может легко «нажимать» на ссылки в любом письме. Копирование и вставка чего-либо было бы немного более раздражающим для автора бота, но не очень. Обычно проверка электронной почты - это проверка электронной почты.
Вы проверяете, будет ли электронная почта, вероятно, контролироваться тем, кто пытается ее зарегистрировать, но, разумеется, поскольку электронная почта обычно отправляется в виде открытого текста по ненадежному TCP и полагается на небезопасный DNS, то до тех пор, пока мы все не будем использовать DNSSEC и не зашифруем весь трафик это будет легко перехватить электронную почту и подделать серверы и клиентов. Важно понимать, что с помощью проверки электронной почты вы получаете только определенную степень уверенности в том, что тот или иной человек, с которым вы говорите, действительно является пользователем этого адреса электронной почты.
Тест Тьюринга
Ответ на вопрос, ответ на который должен знать только человек, будет еще более раздражающим, но, учитывая, что у вас, вероятно, не будет бесконечного числа вопросов, автор бота может перенаправить неизвестный вопрос на реального человека и использовать кэшированные ответы, если любой вопрос повторяется более одного раза. Отвечая на вопрос типа «что такое 12 + 8», как я видел в последнее время на некоторых веб-сайтах, тест Тьюринга совершенно контрпродуктивен, поскольку этот вопрос на самом деле проще для ботов, чем для людей. Вероятно, самым популярным тестом Тьюринга для этого являются капчи, но здесь вы также должны понимать, что их можно обмануть.
Прежде всего, люди демонстрируют способы обхода CAPTCHA, например, см. Доклад Декодирование reCAPTCHA от DEFCON 18. Многие CAPTCHA гораздо проще для расшифровки роботов, поскольку они генерируются алгоритмами, тривиальными для задний ход. Искажения reCAPTCHA также довольно просты, но слова, которые они используют, являются реальными отсканированными словами, которые были трудны для распознавания текста, поэтому в принципе это должно быть намного сложнее для ботов, но это не всегда так.
И есть также возможность отображать капчи, которые вы хотите угадать, на других сайтах и попросить людей ответить за них. Также существует черный рынок, на котором человек фактически решают капчи, поэтому, если ваш автор бота не возражает заплатить что-то вроде двух центов за дюжину, то, независимо от того, насколько это трудно для людей, реальные люди все равно решат это. .
Итог
Суть в том, что использование любого из методов остановки ботов всегда будет компромиссом того, сколько владелец бота (спамер или кто-либо еще, кто хочет зарегистрировать много пользователей в вашей системе) будет готов потратить время, усилия и деньги, чтобы сделать это, и сколько неудобств для ваших пользователей вы собираетесь терпеть, потому что в конечном итоге вы никогда не сможете сделать какой-либо автоматизированный тест, чтобы отличить людей и ботов, фактически не раздражая людей и не отталкивая людей с ограниченными возможностями ( кто-нибудь когда-нибудь пытался угадать аудио версию reCAPTCHA?), и все же ваши боты могут на самом деле работать на людях, так что на самом деле не боты, а киборги, так сказать.
Это гонка вооружений, за которую ваши честные пользователи платят цену. Пожалуйста, помните все это.