Практические подходы CAPTCHA без изображений?
Похоже, мы добавим поддержку CAPTCHA в Stack Overflow. Это необходимо для предотвращения действий ботов, спамеров и других вредоносных скриптов. Мы только хотим, чтобы люди публиковали или редактировали здесь!
Мы будем использовать JavaScript (jQuery) CAPTCHA в качестве первой линии защиты:
http://docs.jquery.com/Tutorials:Safer_Contact_Forms_Without_CAPTCHAs
Преимущество этого подхода в том, что для большинства людей CAPTCHA никогда не будет видна!
Тем не менее, для людей с отключенным JavaScript нам все еще нужен запасной вариант, и здесь он становится сложным.
Я написал традиционный элемент управления CAPTCHA для ASP.NET, который мы можем использовать повторно.
Однако я предпочел бы пойти с чем-то текстовым, чтобы избежать накладных расходов на создание всех этих изображений на сервере с каждым запросом.
Я видел такие вещи, как..
- ASCII текстовая капча:
\/\/(_)\/\/
- математические головоломки: что такое 7 минус 3 раза 2?
- пустяковые вопросы: что вкуснее, жаба или эскимо?
Может быть, я просто склоняюсь к ветряным мельницам здесь, но я хотел бы иметь менее ресурсоемкий, не основанный на изображениях <noscript>
совместимая капча, если это возможно.
Идеи?
103 ответа
Планируете ли вы когда-нибудь предоставить API для Stackru, который позволил бы программно манипулировать вопросами / ответами? Если да, то как защита CAPTCHA будет вписываться в это?
Предоставление только расширенного интерфейса только для чтения с помощью каналов синдикации Atom позволило бы людям создавать интересные интеллектуальные клиенты / инструменты для организации и поиска в обширном контенте Stackru; Я мог видеть возможность вне веб-интерфейса задавать и / или отвечать на вопросы, а также голосовать за контент как чрезвычайно полезный. (Хотя это может не соответствовать модели дохода на основе рекламы.)
Я бы предпочел, чтобы Stackru использовал эвристический подход к мониторингу, который пытается обнаружить вредоносную активность и заблокировать пользователя-нарушителя, но может понять, как использование CAPTCHA может быть более простым подходом, так как ваши данные о выпуске скоро появятся.
Без действительной CAPTCHA в качестве первой линии защиты, разве вы все еще не уязвимы для спамеров, пишущих в браузере (тривиально, используя VB и IE)? Т.е. загрузить страницу, перейти в DOM, нажать кнопку отправки, повторить...
Если вам нужен подход на основе ASCII, взгляните на интеграцию FIGlet. Вы можете сделать несколько пользовательских шрифтов и сделать некоторую случайную выборку шрифта для каждого персонажа, чтобы увеличить энтрофию. Кернинг делает текст более приятным для визуального восприятия и немного труднее для бота перепроектировать.
Такие как:
______ __ ____ _____ / __ / / ____ _____ / / __ / __ \ _ _____ ____ / _ / / __ _ __ _ \ \ / __ / _ `/ __ / '_ / / / _ / / | / / -_) __ / _ / / _ \ | / | / / / ___ / \ __ / \ _,_ / \ __ / _ / \ _ \ \ ____ / | ___ / \ __ / _ / / _ // _ / \ ___ / __,__ /
Ajax Fancy Captcha - своего рода изображение на основе, за исключением того, что вы должны перетаскивать объекты на основе распознавания формы, а не вводить буквы / цифры, содержащиеся на изображении.
Не самое совершенное антиспамовое оружие, но эй, Microsoft одобрила:
Nobot-Control (часть AjaxControlToolkit).
NoBot можно протестировать, нарушив любой из вышеперечисленных методов: быстрое размещение сообщений назад, многократное размещение сообщений назад или отключение JavaScript в браузере.
Демо-версия:
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/NoBot/NoBot.aspx
Простая математика не является ответом - спаммеру даже не нужно писать простой парсер. Google сделает это за них, даже если вы используете слова вместо числа, поэтому для этого требуется быстрый поиск в Google, и все готово.
Он также может легко преобразовывать текст в числа.
Кажется, есть какая-то ошибка в рендеринге SO, так как она показывает только первую ссылку, когда она опубликована, даже если предварительный просмотр работает правильно. Вторая ссылка - зайдите в Google и найдите "1 * сорок два"
Мне очень нравится метод капчи, используемый на этом сайте: http://www.thatwebguyblog.com/post/the_forgotten_timesaver_photoshop_droplets
Одна вещь, которая ставит в тупик, - это то, как Google, очевидно, компания с наибольшим количеством PHD в мире, может сломать свою капчу и, похоже, ничего с этим не поделать.
Я думаю, что биткойн делает отличную практическую капчу, не основанную на изображениях - подробности см. На http://bitcoin.org/.
При регистрации люди отправляют микроплатеж, который можно вернуть после подтверждения. Вы не вернете время, потраченное на поиск капчи.
Возможно, сообщество может придумать хорошие текстовые CAPTCHA?
Затем мы можем составить хороший список, основанный на тех, кто набрал наибольшее количество голосов.
@pc1oad1etter Я также заметил это после того, как сделал мой пост. Однако это всего лишь идея, а не фактическая реализация. Изменение шрифта или использование других цветов вместо полужирного / курсива легко решит проблемы юзабилити.
Вот мое усилие по капче:
The security number is a spam prevention measure and is located in the box
of numbers below. Find it in the 3rd row from the bottom, 3rd column from
the left.
208868391 241766216 283005655 316184658 208868387 241766212
241766163 283005601 316184603 208868331 241766155 283005593
241766122 283005559 316184560 208868287 241766110 283005547
316184539 208868265 241766087 283005523 316184523 208868249
208868199 241766020 283005455 316184454 208868179 241766000
316184377 208868101 241765921 283005355 316184353 208868077
Конечно, числа случайны, как и выбор строки и столбца, а также выбор слева / справа сверху / снизу. Один человек, который оставил комментарий, сказал мне "секретный вопрос - отстой, кстати, член":
http://jwm-art.net/dark.php?p=louisa_skit
чтобы увидеть в действии, нажмите "Добавить комментарий".
Вы пробовали http://sblam.com/en.html? Из того, что я знаю, это хорошая альтернатива для капчи, и она полностью прозрачна для пользователей.
Я думаю, что мы должны предположить, что этот сайт будет регулярно подвергаться целевым атакам, а не только обычным дрифтинговым ботам. Если он станет первым хитом для поиска программистов, он вызовет много огня.
Для меня это означает, что любая система CAPTCHA не может извлечь из повторяющегося списка вопросов, который человек может вручную ввести в бот, в дополнение к тому, что он не может быть угадан ботами.
Почему бы не задать простые задачи программирования, чтобы пользователи могли ответить на свой любимый язык, - затем запустите код на сервере и посмотрите, работает ли он. Избегайте ферм с капчей, запустив ответ на другой случайный текст.
Пример: "Извлечь доменное имя из - s = hihiuhi@ewfwef.cfwe"
Ответ на Python: "возврат = и т. Д."
Подобные доменные знания для других под-сайтов.
Все они будут иметь стандартные формулировки, которые могут быть проверены автоматически, но с использованием случайных строк или значений для проверки.
Очевидно, что эта идея имеет много недостатков;)
Также - разрешить только одну попытку входа в систему за 5 минут.
Просто чтобы выбросить это там. У меня есть простая математическая задача в одной из моих контактных форм, которая просто спрашивает
что такое [число 1-12] + [число 1-12]
Я, вероятно, получаю, вероятно, 5-6 в месяц спама, но я не получаю так много трафика.
Изображение может быть создано на стороне клиента из векторной информации, передаваемой с сервера.
Это должно уменьшить обработку на сервере и объем данных, передаваемых по проводам.
Мне нравится капча, которая используется в "большой сети rom": текст ссылки
Нажми на цветную улыбку, это смешно и все могут понять... кроме ботов хаха
Опубликуйте математическую задачу в виде ИЗОБРАЖЕНИЯ, возможно, для ясности.
Просто хорошо виден текст на изображении.
(2+5)*2
Как насчет аудио? Предоставьте аудиосэмпл с голосом, говорящим что-то. Пусть пользователь наберет то, что услышал. Это также может быть звуковым эффектом, который он может определить.
В качестве бонуса это может помочь распознавателям речи создавать закрытые титры, точно так же, как RECAPTCHA помогает сканировать книги.
Наверное, глупо... только что получил эту идею.
Я думаю, что они работают над дросселированием. Было бы более разумно просто отключить CAPTCHA для пользователей с 500+ повторениями и сбросить повтор для злоумышленников.
CAPTCHA проверяет, являетесь ли вы человеком или компьютером. Проблема в том, что после этого компьютер должен судить, человек ли ты.
Таким образом, решение состоит в том, чтобы позволить одному пользователю заполнить CAPTCHA и позволить следующему пользователю проверить его. Проблема, конечно, в нехватке времени.
Я думаю, что CAPTCHA на заказ - ваш лучший выбор. Таким образом, для его взлома требуется специально предназначенный бот / скрипт. Этот фактор усилия должен уменьшить количество попыток. Люди ленивы в конце концов
Отвечая на оригинальный вопрос:
- ASCII это плохо: мне пришлось щуриться, чтобы найти "ВАУ". Это даже правильно? Это может быть "ВВОВВ" или что-то еще;
- Очень простая арифметика это хорошо. Слепые люди смогут ответить. (Но, как сказал Джарод, остерегайтесь приоритетов операторов.) Я полагаю, что кто-то может написать парсер, но это делает рассылку спама более дорогой.
- Мелочи в порядке, но вам придется написать каждый из них:-(
Я видел изображения животных [что это?]. Голоса за комиксы используют изображение персонажа с его именем, написанным где-то на изображении [введите имя]. Невозможно разобрать, не хорошо для слепых.
У вас может быть аудио-резерв, читающий буквенно-цифровые символы (те же буквы и цифры, что и в коде).
Последняя линия защиты: сделать спам легким для сообщения (одним щелчком мыши) и простым для удаления (один экран повторения, чтобы проверить, является ли он учетной записью спама, с отображением последних десяти сообщений, одним щелчком мыши для удаления учетной записи). Это все еще дорого по времени, хотя.
Как насчет использования ASP.NET Ajax NoBot? Кажется, это работает для меня. Это не очень здорово, но достойно.
У меня был форум vBulletin, на котором было много спама. Добавление одного дополнительного правила исправило все это; позволяя людям вводить заглавные буквы слова. Поскольку наш веб-сайт называется "TrefPuntMagic", они должны были ввести "TPM". Я знаю, что это не динамично, и если спамер хочет действительно спамить наш сайт, он может обойти это, но мы - лишь один из многих форумов vBulletin, на которые они нацелены, и это легко исправить.
@lance
Кто сказал, что вы должны создавать все изображения на сервере с каждым запросом? Может быть, вы могли бы иметь статический список изображений или вытащить их из Flickr. Мне нравится идея CAPTCHA "Нажми на котенка". http://www.thepcspy.com/kittenauth.
Если вы извлекаете статический список изображений, обходить CAPTCHA становится тривиально, потому что человек может их классифицировать, и тогда бот сможет легко ответить на вызовы. Даже если бот не может ответить на все из них, он все еще может спамить. Он должен быть в состоянии ответить только на небольшой процент CAPTCHA, потому что он всегда может просто повторить попытку в случае неудачной попытки.
Это на самом деле проблема с головоломками и тому подобное, потому что очень сложно иметь большой набор задач.
@rob
А как насчет капчи? Вау, так просто! Выглядит хорошо! Хотя они выдвинули на первый план проблему доступности. Вы думаете, что это будет проблемой в SO? Мне лично трудно представить разработчиков / программистов, которые испытывают затруднения при чтении экрана до такой степени, что им требуется программа для чтения с экрана?
Есть разработчики, которые не только юридически слепы, но и на 100% слепы. Трость и собака-помощник. Я надеюсь, что сайт поддержит их разумным образом.
Тем не менее, с помощью honeypot captcha вы также можете поместить скрытый div, который скажет им оставить поле пустым. И вы также можете поместить его в сообщение об ошибке, если они его заполняют, так что я не уверен, насколько важна проблема доступности. Это определенно не здорово, но может быть и хуже.
Какого цвета пятое слово этого предложения? красный?, синий, зеленый?
(адекватно раскрасить слова)
Как насчет того, чтобы показать девять случайных геометрических фигур и попросить пользователя выбрать два квадрата, или два круга, или что-то еще... должно быть довольно легко написать и легко использовать...
Нет ничего хуже, чем иметь текст, который вы не можете правильно прочитать...