Похоже, мы добавим поддержку 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>
CAPTCHA, если это возможно.
Идеи?
источник
Ответы:
Метод, который я разработал и который, кажется, работает отлично (хотя я, вероятно, не получаю так много спама в комментариях, как вы), должен иметь скрытое поле и заполнить его фиктивным значением, например:
Затем у меня есть фрагмент JavaScript, который обновляет значение каждую секунду с количеством секунд, на которые страница была загружена:
Затем, когда форма отправлена, если значение антиспама по-прежнему равно "lalalala", я отмечаю его как спам. Если значение антиспама является целым числом, я проверяю, превышает ли оно что-то вроде 10 (секунд). Если это ниже 10, я отмечаю это как спам, если это 10 или больше, я пропускаю это.
Теория такова:
Недостатком этого метода является то, что он требует JavaScript, и если у вас не включен JavaScript, ваш комментарий будет помечен как спам, однако я проверяю комментарии, помеченные как спам, так что это не проблема.
Ответ на комментарии
@MrAnalogy: подход на стороне сервера звучит довольно неплохо и точно такой же, как в JavaScript. Хороший звонок.
@AviD: я знаю, что этот метод подвержен прямым атакам, как я уже упоминал в своем блоге . Тем не менее, он будет защищать от вашего обычного спам-бота, который слепо подает мусор в любую форму, которую сможет найти.
источник
Моя любимая капча :
источник
Если я что-то упустил, что не так с использованием reCAPTCHA, так как вся работа выполняется внешне.
Просто мысль.
источник
Мне нравится эта идея, нет ли способа, которым мы можем просто подключиться к системе повторений? Я имею в виду, что любой, кто скажет +100, может быть человеком. Так что, если у них есть репутация, вам даже не нужно делать что-либо с точки зрения CAPTCHA.
Затем, если это не так, отправьте его, я уверен, что не потребуется столько сообщений, чтобы добраться до 100, и сообщество мгновенно погрузится в тех, кто, кажется, спамит оскорбительными тегами, почему бы не добавить ссылку «сообщить о спаме» что снизит на 200? Получите 3 из них, достижение spambot разблокировано, пока пока;)
РЕДАКТИРОВАТЬ : Я должен также добавить, мне нравится математическая идея для CAPTCHA без изображения. Или, может быть, простая вещь типа загадки. Может сделать публикацию еще интереснее ^ _ ^
источник
А как насчет капчи с приманкой ?
источник
Hey, if youre a human, keep this field blank!
Избегайте худших капч за все время .
Кто-то должен был бы написать их.
Вы можете задавать пустяковые вопросы так же, как ReCaptcha печатает слова. Он предлагает два слова, одно из которых знает ответ, другое - нет - после достаточного количества ответов на второе, теперь он тоже знает ответ. Задайте два пустяковых вопроса:
А женщине нужен мужчина, как рыбе нужен?
Оранжевый оранжевый оранжевый. Типа зеленый.
Конечно, это может потребоваться в сочетании с другими методами, такими как таймеры или компьютерные секреты. Вопросы нужно будет переворачивать / удалять, поэтому, чтобы сохранить количество вопросов, вы могли бы добавить:
Введите очевидный вопрос:
Вам даже не нужен ответ; другие люди поймут это для вас. Возможно, вам придется разрешить помечать вопросы как «слишком сложные», например, так: «asdf ejflf asl; jf ei; fil; asfas».
Теперь, чтобы замедлить кого-то, кто работает с игровым ботом StackOverflow, вы должны чередовать вопросы по IP-адресу - так, чтобы один и тот же IP-адрес не получал тот же вопрос, пока все вопросы не будут исчерпаны. Это замедляет создание словаря известных вопросов, заставляя человека-владельца ботов отвечать на все ваши пустяковые вопросы.
источник
Я видел это однажды на сайте друга. Он продает его за 20 баксов. Это искусство ASCII!
http://thephppro.com/products/captcha/
источник
CAPTCHA в своей нынешней концептуализации ломается и часто легко обходит стороной. Ни одно из существующих решений не работает эффективно - GMail в лучшем случае добивается успеха только в 20% случаев.
На самом деле все намного хуже, поскольку в этой статистике используется только OCR, и существуют другие способы обойти это, например, прокси-серверы CAPTCHA и фермы CAPTCHA. Я недавно выступил с докладом на эту тему в OWASP, но ppt еще не в сети ...
Несмотря на то, что CAPTCHA не может обеспечить фактическую защиту в любой форме, этого может быть достаточно для ваших нужд, если вы хотите заблокировать случайный мусор. Но это не остановит даже полупрофессиональных спамеров.
Как правило, для сайта с ресурсами любой ценности, которые необходимо защитить, вам необходим трехэтапный подход:
CAPTCHA может помочь крошечному биту со вторым зубцом, просто потому, что он меняет экономику - если другие зубцы на месте, больше не стоит беспокоиться о прорыве CAPTCHA (минимальная стоимость, но все же стоимость), чтобы преуспеть в таком небольшое количество спама.
Опять же, не весь ваш спам (и другой мусор) будет генерироваться компьютером - используя прокси-сервер CAPTCHA или ферму, плохие парни могут заставить вас спамить реальных людей.
CAPTCHA на прокси-сервер, когда они служат изображение для пользователей других сайтов, например, порно, игр и т.д.
У фермы CAPTCHA есть много дешевых рабочих (Индия, Дальний Восток и т. Д.), Которые их решают ... обычно от 2 до 4 долларов за 1000 решенных задач. Недавно видел объявление для этого на Ebay ...
источник
Это невероятно глупо. Значит, найдутся пользователи, которые могут редактировать любые посты на сайте, но без постов без капчи? Если у вас достаточно репутации, чтобы понизить сообщения, у вас достаточно репутации, чтобы оставлять посты без CAPTCHA. Сделайте это выше, если вам нужно. Кроме того, существует множество способов обнаружения спама без распознавания изображений, поэтому даже незарегистрированным пользователям никогда не придется заполнять эти забытые формы CAPTCHA.
источник
Убедитесь, что это не то, что Google может ответить, хотя. Что также показывает проблему с этим - порядок операций!
источник
Как насчет использования самого сообщества, чтобы перепроверить, что все здесь люди, то есть что-то вроде сети доверия? Чтобы найти действительно достойного доверия человека для запуска в Интернете, я предлагаю использовать эту капчу, чтобы убедиться, что он абсолютно и на 100% человек.
Rapidshare CAPTCHA - гипотеза Римана http://codethief.eu/kram/_/rapidshare_captcha2.jpg
Конечно, есть небольшая вероятность того, что он будет слишком занят подготовкой своей речи Медаль Филдса, чтобы помочь нам создать сеть доверия, но хорошо ...
источник
Асирра самая очаровательная капча когда-либо.
источник
Просто заставьте пользователя решать простые арифметические выражения:
и т.п.
Как только спамеры поймают, их будет довольно легко обнаружить. Всякий раз, когда обнаруженный спамер запрашивает, переключайтесь между следующими двумя командами:
Очевидно, причина, по которой это работает, заключается в том, что все спамеры достаточно умны, чтобы их можно было использовать,
eval
чтобы разрешить капчу в одной строке кода.источник
rm
от работы с-rf /
.literal_eval
(или эквивалентах в других языках), что является довольно печальным фактом.rm -rf ~
было бы разрушительным, если бы скрипт выполнялся на чьем-то персональном компьютереЯ использовал следующую простую технику, она не надежна. Если кто-то действительно хочет обойти это, легко взглянуть на источник (т.е. не подходит для Google CAPTCHA), но это должно обмануть большинство ботов.
Добавьте 2 или более полей формы, например:
Затем используйте CSS, чтобы скрыть их:
При отправке проверьте, есть ли в этих полях формы какие-либо данные, если они не проходят публикацию формы. Причина в том, что боты будут читать HTML и пытаться заполнить каждое поле формы, тогда как люди не увидят поля ввода и не оставят их в покое.
Очевидно, есть еще много вещей, которые вы можете сделать, чтобы сделать это менее пригодным для использования, но это всего лишь базовая концепция.
источник
Хотя мы все должны знать основы математики, математическая головоломка может вызвать путаницу. В вашем примере я уверен, что некоторые люди ответили бы «8» вместо «1».
Подойдет ли простая строка текста со случайными символами, выделенными жирным шрифтом или курсивом? Пользователь просто должен ввести жирный / курсивный буквы как CAPTCHA.
Например , s sdfa т werwe JH с грустным к oghvefdhrffghlfgdhowfgh
В этом случае «стек» будет CAPTCHA. Очевидно, что существует множество вариантов этой идеи.
Изменить: Пример вариантов для решения некоторых потенциальных проблем, связанных с этой идеей:
источник
Хотя это подобное обсуждение было начато:
Мы пробуем это решение в одном из наших часто используемых приложений:
Лучшее управление CAPTCHA (Смотри Ма - НЕ ИЗОБРАЖЕНИЕ!)
Вы можете увидеть это в действии в нашем Поиске Строительной инспекции .
Вы можете просмотреть Source и увидеть, что CAPTCHA - это просто HTML.
источник
Я знаю, что никто не будет читать это, но как насчет собаки или кошки CAPTCHA?
Вы должны сказать, какая из них кошка или собака, машины не могут этого сделать. Http://research.microsoft.com/asirra/
Это круто ..
источник
Я просто использую простые вопросы, на которые каждый может ответить:
Какого цвета небо?
Какого цвета апельсин?
Какого цвета трава?
Это делает так, что кто-то должен настроить бота на ваш сайт, что, вероятно, не стоит усилий. Если они это сделают, вы просто измените вопросы.
источник
Лично мне не нравится CAPTCHA, это вредит удобству использования и не решает проблему безопасности, делающую недействительными действительных пользователей.
Я предпочитаю методы обнаружения ботов, которые вы можете использовать на стороне сервера. Поскольку у вас есть действительные пользователи (благодаря OpenID), вы можете блокировать тех, кто «не ведет себя», вам просто нужно идентифицировать шаблоны бота и сопоставить их с шаблонами обычного пользователя и рассчитать разницу.
Дэвис, Н., Мехди, В., Гоф, Н.: Создание и визуализация интеллектуального NPC с использованием игровых движков и инструментов AI http://www.comp.glam.ac.uk/ASMTA2005/Proc/pdf/game-06 .pdf
Голле П., Дюшено, Н.: Запретить ботам играть в онлайн-игры <- ACM Portal
Ducheneaut, N., Moore, R.: Социальная сторона игр: изучение моделей взаимодействия в многопользовательской онлайн-игре
Конечно, большинство из этих ссылок указывают на обнаружение ботов в видеоиграх, но это потому, что это было темой статьи нашей группы под названием « Войны роботов: внутриигровое исследование идентификации роботов» . Это не было опубликовано или что-то, просто что-то для школьного проекта. Я могу написать по электронной почте, если вы заинтересованы. Дело в том, что даже если он основан на обнаружении ботов в видеоиграх, вы можете обобщить его в Интернете, потому что есть пользователь, привязанный к шаблонам использования.
Я согласен с методом MusiGenesis этого подхода, потому что это то, что я использую на своем сайте, и он работает прилично хорошо. Невидимый процесс CAPTCHA - это приличный способ блокирования большинства сценариев, но это все же не мешает сценаристу перепроектировать ваш метод и «подделать» значения, которые вы ищете в javascript.
Я скажу, что лучший способ состоит в том, чтобы: 1) установить пользователя, чтобы вы могли блокировать, когда он плохой, 2) идентифицировать алгоритм, который обнаруживает типичные шаблоны против нестандартных шаблонов использования веб-сайта и 3) соответственно блокировать этого пользователя.
источник
У меня есть некоторые идеи, которыми я хотел бы поделиться с вами ...
Первая идея, чтобы избежать OCR
Капча, у которой есть какая-то скрытая часть от пользователя, но полное изображение - это два кода вместе, поэтому программы OCR и фермы капчи считывают изображение, которое содержит видимую и скрытую части, пытаются декодировать их обе и не могут отправить. .. - У меня есть все готовые исправить это и работать в Интернете.
http://www.planethost.gr/IdeaWithHiddenPart.gif
Вторая идея, чтобы сделать это проще
Страница со многими словами, которые человек должен выбрать правильно. Я также создал этот, просто. Слова являются кликабельными изображениями, и пользователь должен щелкнуть правой кнопкой мыши.
http://www.planethost.gr/ManyWords.gif
Третья идея без изображений
То же, что и предыдущий, но с элементами div и text или маленькими значками. Пользователь должен щелкнуть только на одном правильном div / букве / изображении, что бы ни было.
http://www.planethost.gr/ArrayFromDivs.gif
Последняя идея - я называю это CicleCaptcha
И еще одна моя CicleCaptcha , пользователь должен найти точку на изображении. Если он найдет его и щелкнет по нему, то это человек, машины, возможно, выйдут из строя, или ему нужно создать новое программное обеспечение, чтобы найти способ с этим.
http://www.planethost.gr/CicleCaptcha.gif
Любые критики приветствуются.
источник
Лучшая капча! Может быть, вам нужно что-то вроде этого для регистрации, чтобы не пустить в ход.
источник
Недавно я начал добавлять тег с именем и идентификатором, установленным на «сообщение». Я установил его скрытым с помощью CSS (отображение: нет). Спам-боты видят его, заполняют и отправляют форму. На стороне сервера, если текстовая область с идентификатором заполнена, я отмечаю сообщение как спам.
Другой метод, над которым я работаю, генерирует случайные имена и идентификаторы, некоторые из которых являются проверками на спам, а другие - обычными полями.
Это работает очень хорошо для меня, и я еще не получил никакого успешного спама. Тем не менее, я получаю гораздо меньше посетителей моих сайтов :)
источник
Достаточно просто, и будет не сложно обойти это. Я вижу две угрозы здесь:
С помощью простой арифметики вы можете отбить угрозу № 1, но не угрозу № 2.
источник
Что делать, если вы использовали комбинацию идей капчи, которые у вас были (выберите любую из них - или выберите одну из них случайным образом):
с добавлением размещения той же самой капчи в скрытом разделе css страницы - идея приманки. Таким образом, у вас будет одно место, где вы ожидаете правильного ответа, и другое, где ответ должен быть неизменным.
источник
У меня были удивительно хорошие результаты с простым полем «Оставить это поле пустым:». Боты, кажется, заполняют все, особенно если вы называете поле что-то вроде «URL». В сочетании со строгой проверкой реферера, у меня еще не было бота.
Пожалуйста, не забывайте о доступности здесь. Общеизвестно, что капчи недоступны для многих людей, использующих программы чтения с экрана. Простые математические задачи или очень тривиальные мелочи (мне понравился вопрос «какого цвета небо») гораздо более дружелюбны для пользователей с нарушениями зрения.
источник
Простой текст звучит великолепно. Подкупите сообщество, чтобы сделать работу! Если вы, как и я, считаете, что точки SO SO измеряют стремление пользователя помочь сайту успешно развиваться, вполне разумно предлагать очки репутации, чтобы помочь защитить сайт от спамеров.
Предложите +10 репутации за каждый вклад простого вопроса и набора правильных ответов. Вопрос должен подходить далеко (отредактировать расстояние) от всех существующих вопросов, и репутация (и вопрос) должны постепенно исчезать, если люди не могут ответить на него. Допустим, если процент отказов при правильных ответах превышает 20%, отправитель теряет одно очко репутации за неправильный ответ, максимум до 15. Таким образом, если вы отправите неправильный вопрос, вы получите +10 сейчас, но в конечном итоге вы будете нетто -5. Или, может быть, имеет смысл попросить выборку пользователей проголосовать за то, является ли контрольный вопрос хорошим.
Наконец, подобно ежедневному ограничению повторений, допустим, что ни один пользователь не может заработать более 100 репутаций, отправляя контрольные вопросы. Это разумное ограничение по весу, присваиваемому таким вкладам, и оно также может помочь предотвратить распространение спамерами вопросов в систему. Например, вы можете выбирать вопросы не с равной вероятностью, а с вероятностью, пропорциональной репутации отправителя. Джон Скит, пожалуйста, не задавайте никаких вопросов :-)
источник
Сделайте запрос AJAX для криптографического одноразового номера на сервер. Сервер отправляет обратно ответ JSON, содержащий nonce, а также устанавливает cookie, содержащий значение nonce. Рассчитайте хэш SHA1 для одноразового номера в JavaScript, скопируйте значение в скрытое поле. Когда пользователь отправляет форму POST, он теперь отправляет cookie обратно со значением nonce. Рассчитайте хэш SHA1 для одноразового номера из файла cookie, сравните его со значением в скрытом поле и убедитесь, что вы сгенерировали этот одноразовый номер за последние 15 минут (memcached подходит для этого). Если все эти проверки пройдены, оставьте комментарий.
Этот метод требует, чтобы спаммер садился и выяснял, что происходит, и, как только они это сделали, им все равно приходилось запускать несколько запросов и поддерживать состояние cookie, чтобы получить комментарий. Кроме того, они видят
Set-Cookie
заголовок только в том случае, если сначала анализируют и выполняют JavaScript, а затем выполняют запрос AJAX. Это намного, гораздо больше работы, чем большинство спамеров готовы пройти, тем более что работа относится только к одному сайту. Самым большим недостатком является то, что любой, у кого отключен JavaScript или отключены куки, помечается как потенциальный спам. Это означает, что очереди на модерацию все еще хорошая идея.Теоретически, это может рассматриваться как безопасность через неизвестность, но на практике это превосходно.
Я никогда не видел, чтобы спаммер пытался сломать эту технику, хотя, может быть, раз в пару месяцев я получаю запись о спаме по теме, вводимую вручную, и это немного жутко.
источник
1) Человеческие решатели
Все упомянутые здесь решения обойдены подходом человека решателей. Профессиональный спамбот поддерживает сотни соединений, и когда он не может решить саму CAPTCHA, он передает снимок экрана удаленным людям, решающим проблему.
Я часто читаю, что человеческие решатели CAPTCHA нарушают законы. Что ж, это пишут те, кто не знает, как работает эта (спамовая) отрасль.
Люди-решатели напрямую не взаимодействуют с сайтами, которые CAPTCHA решают. Они даже не знают, с каких сайтов были взяты и отправлены капчи. Мне известно о десятках (если не сотнях) компаний и / или веб-сайтах, предлагающих услуги по поиску людей, но ни одной о прямом взаимодействии с досками не работает.
Последние не нарушают никаких законов, поэтому решение CAPTCHA является полностью легальным (и официально зарегистрированным) бизнесом компании. Они не имеют преступных намерений и могут, например, использоваться для дистанционного тестирования, расследования, проверки концепции, прототипа и т. Д.
2) Спам на основе контекста
Боты AI (искусственного интеллекта) определяют контексты и поддерживают контекстно-зависимые диалоги в разное время с разных IP-адресов (разных стран). Даже авторы блогов часто не понимают, что комментарии от ботов. Я не буду вдаваться в подробности, но, например, боты могут создавать человеческие диалоги, сохранять их в базе данных, а затем просто повторно использовать их (фраза за фразой), чтобы они не были обнаружены как спам программным обеспечением или даже людьми.
Самый голосующий ответ говорит:
а также honeypot-ответ, и большинство ответов в этой теме просто неверны.
Я полагаю, что они обречены на жертвы
Большинство спам-ботов работают через локальные и удаленные браузеры, поддерживающие javascript (исправленные и управляемые) с разных IP-адресов (разных стран), и они достаточно умны, чтобы обойти ловушки для меда и медовые банки.
Другая проблема заключается в том, что даже владельцы блогов не могут часто обнаруживать, что комментарии принадлежат ботам, поскольку они на самом деле основаны на диалогах людей и комментариях, собранных с других веб-форумов (форумов, комментариев в блогах и т. Д.).
3) Концептуально новый подход
Извините, я удалил эту часть как осажденную
источник
На самом деле это может быть идея иметь набор кодов, связанных с программированием. Например:
Существует возможность того, что кто-то создаст проверку синтаксиса, чтобы обойти это, но намного больше работы, чтобы обойти капчу. Вы получаете идею наличия связанной капчи, хотя.
источник
$var == array(1 = 'one');;
»)1
, не так3
ли? (Серьезно. Попробуйте$var == array(1 => 'one');;
) ^ _ ~Я должен признать, что у меня нет опыта борьбы со спам-ботами, и я не знаю, насколько они сложны. Тем не менее, я не вижу ничего в статье jQuery, что не может быть выполнено исключительно на сервере.
Чтобы перефразировать резюме из статьи jQuery:
Другой вариант, если вы хотите использовать традиционный образ CAPTCHA без дополнительных затрат на их генерацию при каждом запросе, - это предварительно генерировать их в автономном режиме. Тогда вам просто нужно случайно выбрать один для отображения с каждой формой.
источник