Практические подходы CAPTCHA без изображений?

Похоже, мы добавим поддержку CAPTCHA в Stack Overflow. Это необходимо для предотвращения действий ботов, спамеров и других вредоносных скриптов. Мы только хотим, чтобы люди публиковали или редактировали здесь!

Мы будем использовать JavaScript (jQuery) CAPTCHA в качестве первой линии защиты:

http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs

Преимущество этого подхода в том, что для большинства людей CAPTCHA никогда не будет видна!

Тем не менее, для людей с отключенным JavaScript нам все еще нужен запасной вариант, и здесь он становится сложным.

Я написал традиционный элемент управления CAPTCHA для ASP.NET, который мы можем использовать повторно.

CaptchaImage

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

Я видел такие вещи, как..

  • ASCII текстовая капча: \/\/(_)\/\/
  • математические головоломки: что такое 7 минус 3 раза 2?
  • пустяковые вопросы: что вкуснее, жаба или эскимо?

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

Идеи?

103 ответа

Я недавно (не помню где) увидел систему, которая показала кучу картинок. Каждой из картинок был присвоен характер. Затем пользователю было предложено ввести символы для некоторых изображений, на которых показаны примеры какой-либо категории (автомобили, компьютеры, здания, цветы и т. Д.). Картинки и символы менялись каждый раз, а также категории для построения строки CAPTCHA.

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

Наш спам в форме был резко сокращен после внедрения метода "капчи", как упоминалось ранее. Я считаю, что мы не получили ничего с момента его реализации.

Мое предложение будет ASCII-капча, он не использует изображение, и это программист / geeky. Вот реализация PHP http://thephppro.com/products/captcha/ это платная. Существует бесплатная реализация PHP, но я не смог найти пример -> http://www.phpclasses.org/browse/package/4544.html

Я знаю, что они написаны на PHP, но я уверен, что вы умные ребята, создающие SO, можете "перенести" их на ваш любимый язык.

Я рекомендую вопросы пустяков. Не каждый может понять представления букв в ASCII, и математические вопросы с более чем одной операцией могут привести к путанице.

Mollom - еще одна услуга типа аскимет, которая может представлять интерес. От парней, которые написали drupal / run acquia.

Многие из этих решений JavaScript работают с программами чтения с экрана? И изображения минус значимый атрибут alt, вероятно, нарушает WCAG.

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

Скажите изображение, где>90% людей отметили его как "кошка" или "небоскреб". Затем можно представить изображение, запрашивая наиболее очевидную особенность изображения, которая будет доминирующей меткой для изображения.

Это, вероятно, выходит за рамки SO, но кто-то может найти это интересной идеей:)

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

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

Что означает следующее объявление функции C: char *(*(**foo [][8])())[];?

знак равно

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

Как насчет просто проверить, включен ли JavaScript?

Любой, кто использует этот сайт, обязательно включит его. И из того, что говорят люди, у спам-ботов не будет включен JavaScript.

У меня есть пара решений, одно из которых требует JavaScript, а другое нет. Обе сложнее победить, чем то, что 7 + 4, но они не так строги для постеров, как reCaptcha. Я придумал эти решения, так как мне нужно иметь капчу для AppEngine, которая представляет собой более ограниченную среду.

В любом случае вот ссылка на демо: http://kevin-le.appspot.com/extra/lab/captcha/

Одним из вариантов будет внеполосная связь; сервер может отправить пользователю мгновенное сообщение (или SMS-сообщение?), которое он / она должен затем ввести в поле капчи.

Это накладывает на пользователя требование "или / или" - либо вы должны включить JavaScript, либо вы должны войти в выбранную вами службу обмена мгновенными сообщениями. Хотя он может быть не таким гибким, как некоторые другие решения выше, он будет работать для подавляющего большинства пользователей.

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

Плюсы:

  • Доступно: многие IM-клиенты поддерживают чтение входящих сообщений. Некоторые веб-клиенты будут работать с программами чтения с экрана.

Минусы:

  • Пользователи с отключенным Javascript теперь зависят от времени работы еще одной службы, поверх OpenID.
  • Боты будут вызывать дополнительное использование ресурсов сервера (отправка внеполосных сообщений), если не будут внедрены дополнительные средства защиты.
Другие вопросы по тегам