А почему не добавить с 10 вариантов ответа? Жираф, Зебра.
Сознание воспримет это легко, гораздо легче чем сложение или обычная капча, а подбирать робот будет долго. На всякий случай напомню о незрячих пользователях, для которых, капчи рунета, не проходимы, на всех приличных западных серверах, о них помнят.
Не сочтите эгоистом или бездушной сволочью, но а.незрячих просто мизерный процент в рунете (думаю, куда меньше чем за рубежом) б. не думаю что регистрации на разных сайтах происходят так уж часто и в. если что, незрячий может и попросить кого-нибудь пройти капчу, если уж так надо - не думаю что от него это сильно убудет.
Еще раз прошу не воспринимать меня бездушной скотиной.
Надо генерировать звук, иначе робот может запомнить ограниченное количество звуковых дорожек.
Более того, алгоритмы распознавания речи уже давно работают.(
Можно составить достаточное количество разнообразных описаний представленного животного и комбинировать их — большое количество вариаций, да и роботу сложнее будет. Человек по очевидным признакам явно сможет быстро и однозначно определить кто изображен.
Лень двигатель прогресса.
Чтобы не тратить 5 минут в день на удаление спама, мы будем писать систему которая будет бороться со спамом пару недель.
Но написать бота чтобы обойти её потребуется пару месяцев, и определять кошек/собак/жирафов как всегда будут школьники, желающие заработать на пиво.
Я хочу сказать что какая бы система не была сложной для ботов - всегда найдутся люди, которые будут её распознавать (посмотрите объявления на flance.ru, через день требуются).
Защита, конечно, должна быть. Не сильно простая и не сильно сложная. Чтобы человек не думал что же написано на этой картинке, а робот её не распознал.
IMHO, оптимально сложение чисел, написанных буквами.
В крайнем случае можно поставить премодерацию комментариев + автоматом резалку по популярным спам-словам.
А если очень хочется что-то защищать - то куда полезней и правильней будет защищать сайт от взлома.
Да ради бога. Просто делаем для кошки варианты ответа «кот»/«кошка», «котёнок»/«котенок», «cat», «kitten», «猫», «子猫»/«小猫»/«仔猫». И подписать внизу, мол, вводите ответ на русском, английском или японском языке. В идеале — делать систему Open Source, чтобы потом кому надо могли добавить остальные языки. Например, для сербского — «мачка»/«mačka» и «мачкица»/«mačkica».
Закорючки красивые, а решение сложное, на мой взгляд. Трудно перечислить все возможные правильные ответы. У меня элементарный антиспам-бот в icq не все (а ведь люди, вроде) пройти могут...
Тогда можно сделать ещё проще:
нужно сопоставить животных, т.е. выдаётся изображение кошки, и список с изображениями удава, окапи, кошки, страуса Эму и т.п. человек выбирает совпадающее животнае ;) И никаких проблем с языками, для слепых добавить звук, навёл на картинку, а она тебе говорит: "Я мурзик" или "Я свинко", ну и по аналогии )))
Все верно. Посмотрите код: <td>Контрольная сумма: <b>36 + 3 =</b></td>
Никаких картинок! Для любого программиста спарсить "36 + 3" и вычислить ответ не представляет проблем. Это даже не защита.
ну почему же двойная защита получается: на картинке изображено "прибавьте сорок восемь к двадцати пяти" и текстовое поле для ввода ответа. Бот будет долго мучаться с таким
Тяжелое для компьютера место это распознавание, на арифметику ему начхать. Значит в словесном описании арифметического выражения ему надо:
1. распознать слова и цифры
2. представить это в виде арифметической операции и вычислить.
Сложность первого пункта зависит от искажений в тексте, тут как с обычной капатчей только боту плюс можно слово и по словарям для достоверности проверить, словарь будет небольшой.
Второй делается несложно, ну сколько вы можете придумать шаблонов подобных описаний арифметических выражений. Немного, вот их и разбирать. Таким образом защита только в первом пункте, что ничем не отличается от обычной капатчи, разве что напрягаем мозг пользователя и легче для распознавания.
Здесь видел капчу, с похожими вариантами: http://random.irb.hr/signup.php
Решил посмотреть, генерирует ли она их сама, или выбирает из готовых вариантов.
Оказалось - там всего около десятка вариантов... то есть, защита почти никакая.
ну теоретически может быть, со специально заточенным софтом.
однако на практике я пока что ни разу не замечала, чтобы через это пробивались массовые программы для спама.
как вариант - для уменьшения вероятности попадания случайным перебором, увеличить количество вопросов? даже 3 вопроса снижают вероятность неплохо... :)
и вы таки думаете, что робот не попробует ввести оба варианта?
1. Капчи бывают плохие и хорошие, %username%
2. Капчи со сложением/вычитанием ничем особым не лучше обычных. Вы думаете компьютер не умеет складывать?
3. Не стоит полагаться на единственный способ защиты. Комбинируйте.
да это работает, когда поле скрыто стилем, а робот видит и заполняет и при его заполнении сообщение не публикуется.
я иногда просто ставлю хак, который удаляет сообщение (и юзера заодно) если в нем ссылка от юзера, для которого это сообщение первое. на почту приходит уведомление, что было удалено. за год теста только 100% спам )
Лучше уж задать так вопрос: что это за животное? И поле input.
Но все равно такая капча будет хуже обычной, потому что пусть даже будет и 1000 вариантов вопросов (картинок) - беребрать их можно будет очень быстро.
А капчи на сложение - вообще полный бред.
Эмм... А у вас там много картинок? Берём картинку, делаем хеш содержимого, выясняем правильный ответ. Когда в следующий раз появится эта же картинка - робот будет на 100% уверен в ответе.
Или вы в содержимое файла картинки что-то подмешиваете?
а что мешает считать "схожесть"?... так... первое, что пришло в голову: переводить в грейскейл (с определёнными коэффициентами) + поиграться с уровнями контраста, а потом считать процент отклонения...
Части изображения довольно значительно смещаются по геометрической сетке, что искажает цвет соседних полей "ломаемого" даунсемплированного варианта. Искажение дополняется сдвигом каждого канала на величину до половины диапазона (можно тоже делать волнообразно). Пойди, узнай, в какой сектор b/w и т.п. конечные пиксели упали, и какая между соседями "общая" разница. Сам диапазон можно также масшатбировать, мешать каналы, накладывать шум в промышленных масштабах (хоть текстуру сверху) фишка в том, что на фотках без играющих роль мелких деталей моск всё схавает, ибо больше важен общий образ (в отличие от текстовых каптч).
Идеек как хорошо поиграться на выдающихся адаптивных возможностях человека воз и маленькая тележка но, по-хорошему, нужно сразу писать ломалку и гонять до умопомрачения. А времени пока мало.
Примерчик же старенький и даже недоделанный, чисто как пища для размышления.
ваша база списков будет ограниченной.
в итоге достаточно натравить робота 10000 раз, выбрать вопросы-уники, дать оператору за 5 баксов на них ответить, и ваш сервис в заднице)))
если картинка без мусора, то работаем по простому хэшу этой картинки, если с мусором - то сложнее.
под "бесконечные" цифры же пишется алгоритм в 10-15 строк.
Самописная реализация защитных механизмов хороша тем, что под неё мало кто отважится переделывать свои скрипты, так что дерзай.
Комбинировать способы - лучшее решение. Пусть случайно выпадает одна из множества разных по принципу действия проверок.
0. Генерировать все картинки одним скриптом c наложением шума и случайным, не очень заметным глазу изменением размера:
img_bild.php?b=ed1008ca4f91bb1a0a190aa230f79a05
1. Загадки:
Три, да три, да три - что получим?
2. Арифметические примеры (картинка+текст):
Каков результат арифметической задачи в 1. строке?
100+64-46=? \
12+156-2=? = Картинка
17+37+49=? /
Используйте только цифры при ответе. Сложите получившееся число с семью. То есть, если результат равен пяти, введите цифру 12.
3. В тексте подменять русские буквы схожими по написанию английскими.
4. Высылать код подтверждения не на мыло, а в один из IM.
6. Не использовать чекбоксы, выпадающие списки и прочие подсказки
Ну это для ботов в принципе тоже не сложно.
Вычитаются одна картинка из другой. Места, где есть отличия будут отличаться. Бот считает число таких областей, вот и всё =) Хотя, возможно, одного вашего сайта спамеры скрипт разрабатывать не будут...
Так есть же предел размеров, ну сколько вы натыкаете туда кошек? 10, 20, 100??? А взломщик будет действовать топорно методом китайцев из анекдота про пароль Мао Цзедун. Кстати, при большом количестве предметов, человек замахается их считать, поэтому вы будете сильно ограничены в выборе предельного количества (я думаю не больше 10-15 предметов).
ладно, тогда делаем как у людей - после попытки ввода выдается уже новая капча, предыдущая сессия считается невалидной.
пусть у нас десяток разных картинок с кошками, десяток с собачками, еще можно пингвинов нарисовать...
тогда вероятность угадать роботом - 1/n
Как вариант можно вывести какой-то натюрморт из 10 предметов с просьбой написать названия любых, скажем, 5 предметов с картинки. Или назвать обведенные предметы. Мозги вычислениями напрягать не надо, глаза портить в попытках разглядеть что за буква - тоже. Что-то не видно - и фиг с ним. Для компьютерщиков такой ввод займёт секунды, а робот должен спотыкаться.
Правда такая штука довольно трудоёмка на предмет создания картинок... Хотя если взять травлёные клип-арты, то вполне решаема даже алгоритмическими методами.
плохая капча)
по теории вероятности 50% ответов будет правильными) любой вариант капчи с выбором из списка подвержен простой атаке - перебору "в лоб" вариантов ответов роботом.
как только роботописателю потребуется спам по вашему ресурсу, бот обойдет эту капчу.
Тоже видел этот пример или похожий. Там брались сканы книг, с помощью обычных программ распознавания выделялись сложные места (в которых программа не смогла выполнить распознавание), кусок скана использовался в качестве CAPTCHA. ИМХО, это довольно кривой способ, так как, во первых, в CAPTCHA и распознавании текста из книг всё-таки разные принципы используются, во вторых, текст заранее должен быть распознан.
В сканах, в отличие от CAPTCHA:
- символы почти всегда легко разделяются
- часто используются распространённые шрифты
- требуется высокая скорость распознавания
- текст часто на естественном языке, то есть, можно использовать марковские цепи
- перебор не используется
Кстати, у кого-нибудь получилось вот эту CAPTCHA распознать: http://www.captcha.ru/kcaptcha/
- выглядит надёжно.
суть в том, что там благодаря массовости становилась возможной именно помощь в пополнении библиотеки. Т.е. человек писал текст, который выглядел сравнительно нормально и давно был распознан, плюс слово или фразу, что машина не смогла распознать. Ну даже если безопасность не выше, чем в простых капчах, полезность ее больше.
А что скажете про капчу с координатами клика на картинке?
Пример: Отображается картинка например 150х150рх, на ней 10х10рх круг, квадрат, или что угодно за фигура какого-то цвета. И предложение кликнуть по ..... При клике js вычисляет координаты клика на картинке и передает в скрипт, а там уже идет сравнение с координатами обьекта который был выведен на картинке.
Да нет, кстати. Буквально за пару часов можно реализовать, пожалуй. Другое дело, что это не будет работать без Javascript, что коробит моё чувство прекрасного.
Кстати, вариант как усложнить это: берётся подложка (можно много разных подложек), на которой размещаются объекты (штук 5 разных объектов из коллекции в штук 20 объектов, можно больше). В качестве объектов могут выступать картинки, которые накладываются на подложку с варьирующейся степенью прозрачности, а также повёрнутыми под разными углами.
Среди объектов также могут быть буквы и цифры.
А если пользователь не может по каким-то причинам нажать нужный объект, можно просто попросить перечислить нарисованные объекты.
а обязательно ли во всех случаях пользоваться защитой? иногда помоему можно сделать форму защищенной и без назойливых "проверок".
например я делал защиту на одном из сайтов, когда открываешь форму добавления - в сессию запоминается время открытия страницы добавления формы и после отправки формы проверяется время, прошедшее с момента открытия предыдущей страницы - если переменной нет или она меньше определенного времени(которое необходимо человеку, чтоб заполнить форму) - его выбрасывает, допустим, на главную. А переменную обнуляет(если она задана).
Собственно, роботов пока не видно :) все вроде тихо-мирно :)
смысл всего того, что я описал - уберечь сайт от спам-роботов.
идентификатор сессии сохраняются в куке, верно. Привязка по айпи не нужна, зачем? ну уибили вы сессию - если вы нормальный пользователь, то при попадании на страницу добавления формы вам в сессию создастся переменная, если ее не будет при проверке формы - вы ничего не опубликуете. если вы удалите куку - вам просто придется еще раз зайти на страницу с формой и заново все добавить и засабмитить форму. где что непонятно? :)
А как насчет попросить пользователя дописать последние 2 буквы. К примеру, форма будет выглядеть так:
Животное на картинке - это кош[__].
Робот перебирать значения будет дольше чем в случае с радиобуттонами.
нет, просто оригинальная идея. Не каждый робот додумается)))
ЗЫ: на запрос "ко" гугль реагирует совершенно стандартно.
Представляю, новая каптча: "Далеко-далеко, на лугу пасутся ко. кто?" (:
Ну, как ни странно, Гугл на запрос «Далеко-далеко, на лугу пасутся ко. кто?» выдал кучу интересных неверных вариантов, что конечно может застопорить робота... Но согласитесь — Вы ведь не так и много знаете достаточно распространенных (а это важно) загадок такого типа? На большинство других ответ Гугла будет весьма однозначен и в то же самое время верен ;)
Мне нравится капча с простыми арифметическими задачками, в тексте которых нет ни одного символа, представляющего собой цифру, а некоторые русские буквы заменены на идентичные по написанию английские, например "Ввeдитe в этом поле сумму остаткa oт деления пятидесяти на семь и пpоизведения чисел сорок пять и семьдесят два". Правда, на сайтах для блондинок такая капча вряд ли будет способствовать увеличению числа зарегистрированных пользователей.
Ещё одна капча
http://nzeemin.livejournal.com/207995.html
Собственно, все капчи что я видел показывают обычный текст, плюс искажения в той или иной форме. Предлагается следующее: рендерить трёхмерную сцену с выпуклым текстом (обычный текст плюс толщина букв по третьей координате), несколько повёрнутым от наблюдателя на случайный угол (в определённых пределах, разумеется). Текст делаем полупрозрачным, добавляем ещё ряд объектов для зашумления (например, пузыри разного размера в случайных координатах). Текст и объекты делаем полупрозрачными. Фон лучше использовать нерегулярный, например, фрагмент фотографии. Ну и наконец, трёхмерные эффекты — туман, отражения, круги засветки от источника света направленного на наблюдателя итп. Т.е. фишка в чём: распознавание трёхмерных объектов на порядки сложнее чем плоский OCR, при этом человек справляется с таким распознаванием без напряжения. Конечно, всё это потребует привлечение OpenGL или DirectX, да и генерироваться это будет медленнее, но результат-то стоит того. Да и в любом случае применяется кеширование рисунка после генерации.
Представил себе:
"Подождите... Идет генерирование капчи... Первый проход... ОК. Расчет геометрии... ОК. Наложение карты отражений... ОК. Расчет освещения... ОК. Антиалиасинг... ОК.
Введите текст с картинки" ))
А так, конечно, хорошая идея.
Подождите...
Идет генерирование капчи...
Первый проход... ОК.
Расчет геометрии... ОК.
Наложение карты отражений... ОК.
Расчет освещения... ОК.
Антиалиасинг... ОК.
Ошибка: Извините, Ваша видеокарта не поддерживается нашим сайтом
Как сделана эта капча:
есть два набора картинок, определенного размера. Один - с живой природой, второй, соответственно, нет.
Как ломать: сесть, написать бота, который выкачает все картинки, и руками приписать им "соответствующий тэг".
Они предвидили этот шаг, и чтобы быт не мог понять, какая перед ним картинка - на картинку случайным образом наносится логотик киевстара. Но коэффициент корреляции это меняет несущественно, раньше 100% точек совпадало, теперь 60% - все равно больше, чем с любой другой картинкой.
я новичок в области web-программирования, посему вопрос к знающим людям: а кто-нибудь пробовал генерировать капчу на флэше? насколько это трудоемко и ломаемо? Скажем, можно ведь выводить какие-то символы добавив к ним эффект вращения вокруг какой-нибудь оси (псевдо 3D) с произвольной скоростью
Теоретически, такая идея имеет право на жизнь. Единственное, что может ее притормозить, это отсутствие плагина на браузере, хотя этот вопрос можно и решить.
Никогда подобным не занимался, но, возможно, имеет смысл сделать некую вариацию на тему "Подержите мышку более 3 секунд над зеленым квадратом". Т.е. вообще не требовать от пользователя что-либо вводить вручную. Результат, естественно, помещать в hidden-поле, но никто не помешает генерировать, к примеру длинные строки значений для разных вариантов.
Примерно как я представляю себе это: генерится картинка с несколькими простыми разноцветными фигурами, к ней генерится javascript, который должен каким-то образом проверять, к примеру положение курсора мыши. Плюс для всего этого хэш из, скажем, 40 пар ключей-значений в виде "A#f4_r" => "3.FF daRR45h!%". Соответственно, правильное значение только одно и будет выбрано скриптом только по определенному условию.
Можно разнообразить действия пользователя, к примеру "Нажмите на синий круг два раза и один раз на синий треугольник в заданном порядке".
К минусам этой системы можно отнести относительную сложность реализации (это кого-то пугает? :)
К плюсам - простоту для пользователей, практически не ограниченное число комбинаций, большой потенциал для расширения.
у себя на сайте (форум студентов химиков) планирую поставить капчу - назвать элемент (ввести название) по его символу (картинка).. для тех кто не знает - чуть ниже ссылка на картинку с таблицей менделеева..
как вариант - называть по ИЮПАК различные химические соединения (которые кстати можно генерировать текстом - вряд ли есть робот умеющий называть хим соединения по формуле).. например "C2H5OH" (ответ "этанол")..
Вот, например, Киевстар украинский использует картинки, из которых надо выбрать определенное кол-во изображений живой природы - http://www.kyivstar.net/ru/sms/
Идея не нова - как уже писАли тут - http://research.microsoft.com/sn/asirra/
Там же разобраны - http://research.microsoft.com/sn/asirra/security.aspx - подробно достоинства и недостатки, вероятность взлома и т.д.
Если вкратце - для защиты от брутфорса нужно много изображений (в реализации от МС - 12, что дает вероятность всего 1/4096 - не так уж и мало), ну и нужна большая база картинок (МС использует базу от Petfinder.com - больше 2х миллионов изображений.)
В Asirra плохо то, что изображения очень маленькие и нужно провести по всем чтобы понять где кошки. Если увеличить их до 80x80 скорость работы с капчей значительно возрастет (возможно там можно и настроить я не смотрел).
80 это на глаз, на самом деле размер нужно подбирать экспериментально, для различного разрешения монитора можно использовать различный размер и расположение картинок, для совсем маленьких переходить к оригинальному варианту.
я тоже было подумал, чего это они... и вот после прочтения вашего комментария осенило. и на 80х80, и на 100х100, могут случаться моменты, когда определить будет сложно/невозможно. поэтому полноразмер всё равно нужен, и раз так, то на превью решили съэкономить.
Помоему идея отличная, юзабельность вообще несравнима с искореженными буквами. Вопрос в количестве картинок. Как вариант решения: договариваемся с каким нибудь сайтом тематических фотографий или обоев. И скриптом раз в день(неделю, месяц) берем у них новый набор картинок. Уменьшаем до нужных размеров, качество пострадает но не критично.
Вводить по моему нужно название животного а не выбирать, при переборе просто работает теория вероятности. Периодически менять категории, варианты неограниченны, от марок автомобилей до всем известных картин.
На каждую категорию держать несколько ответов(кот, кошка, котенок), подойдет любой. Кстати вариант для стартапа, этакий генератор капатч который будет их выдавать сайтам, всем разные, постоянная смена, большая регулярно обновляющаяся база изображений, маленькая подпись на каждой капатче :)
Я на своем форуме на базе phpbb решил проблему регистраций ботов следующим образом:
Нужно зайти в файл /includes/usercp_confirm.php
Найти функцию randomise:
// This is designed to randomise the pixels of the image data within
// certain limits so as to keep it readable. It also varies the image
// width a little
function randomise($scanline, $width)
{
$new_line = '';
$start = floor($width/2);
$end = strlen($scanline) - ceil($width/2);
трудность для человека не значит трудность для машины, почему то многие об этом забывают. Машине турдно работаьт с произвольными обьектами, которые не подходят под заданный шаблон букв. Искривления и пр. Если сделать буквы еле читаемыми за счет шума и резкости то жто буджет сложно для человека а не для машины. Машина просто поработает с различными алгоритмами и обнаружит границы букв, дальше сопоставление с шаблоном. В вашем случае найти границы букв достаточно легко, они отличаются от фона, а искажений букв нет.
Стандартные хрумеры не берут эту капчу. Разве это недостаточно для практического применения в ограниченных объемах?
У меня на форуме это решение работает уже почти год.
Я, конечно, понимаю, что в почете сложные алгоритмы, но простые "локальные" заплатки тоже неплохи.
Не в сложности дело, я как раз ценю именно простоту, чем проще решение тем оно красивее. Но я говорю о взламываемости вообще, т.е. сколько усилий потребуется чтобы персонально сломать вашу каптчу. А стандартные много чего не берут, вернее они берут только стандартное(например стандартная каптча для phpBB наверняка взламывается сразу просле изменений). Если нужно защитится от общего спама то ваш метод вполне пойдет, но если за вас возьмутся персонально, вы сэкономите взломщикам очень много времени :) (без обид, я сам иногда пользуюсь этим методом(незначительного изменения стандартного алгоритма), но это не мешает мне его осуждать :) )
Согласен с вами! Но мой форум того не стоит, чтобы кто-то персонально брался за него. Просто было в свое время интересно, как формируется изображение в капче, и я нашел, что достаточно изменить несколько чисел, чтобы можно было регулировать случайный шум и контрастность.
А так... если кто-то за вас займется, НИКАКАЯ капча не спасет. Вот один из алгоритмов: капча в режиме реального времени передается на посещаемый дружественный порно-сайт и там его посетители, стремящиеся получить доступ к эротическим картинкам или видео, скажем, должны распознать капчу. Они ее распознают, код передается на изначальный сайт и вводится в форму. Вот так :)
То есть трудятся уже люди, а не роботы.
Слышал и о таком методе, счас подумал и не придумал способа борьбы, даже самого ненадежного. Может кто нибудь знает? Всякие проверки http ответа по моему не катят, т.к. робот может обеспечить абсолютную маскировку, выступая пользователем он копирует изображение капчи выкладывает его на порносервер(сервер кряков, файл сервер) оттуда получает ответ и уже его передает. Конечно можно пытаться обмануть бота скрытыми полями, но это уже в рубеж обороны, а как защитить от распознавания саму капчу?
Недавно совсем на хабре проскакивала картинка с оптической иллюзией, а что если оптические иллюзии использывать для капч? робот точно не пройдет, только если ИИ написать:)
и ИИ не пройдет, у него же глаз нету, вот только однозначных оптических илючий достаточно мало, можно банально выбрать все и дать человеку распознать, дальше сравниваение картинки с картинкой для робота.
А ведь это гениальная и изящная идея которая сильно ударит по спамерам.
Вместо радиокнопок лучше использовать ввод текста. Только такой метод должен использоваться на редких для одного пользователя действиях действиях, например при регистрации.
На картинках можно отображать самые известные предметы, названия которых неимеют синонимов ни на родном языке ресурса ни на английском (изображение автомобиля например неподойдёт).
Я думаю каждый, и не только кошку, можно и другое, но все равно у компьютера достаточно большой шанс угадать, а если большой шанс есть ничто не мешает сделать такое количество итераций чтобы вероятность угадать стала 1.
Здесь всего два варианта ответа, и робот может тупо выбирать случайный вариант и этого ему хватит. Даже если вариантов будет 20, то 1/20 правильных ответов - это тоже неплохо, а вот человеку уже будет очень сложно
Так давайте возьмём 20 вариантов, но не радиокнопок, а чекбоксов. На картинке от 1 до 20 животных: каждое из 20 возможных (кошка, собака, жираф, зебра, рыба, тигр, олень, кролик...) либо появляется, либо нет. Вопрос - отметьте галочками животных, которые есть на картинке. Имеем 2^20-1 = 1048575 комбинаций. (Совсем пустую картинку лучше исключить, чтобы не запутать пользователя.)
Очень понравилась идея, захотел реализовать, но возникла проблема, может быть я ошибся с чем-нибудь?
Итак, если мы используем определенное множество изображений, для примера 3 или 4, то при сохранении этих изображений получается разный размер картинки. Тогда для создания робота необходимо просто вычислить размеры картинок вариантов и все.
Согласен с тем, что никто не будет изменять работу роботов для отдельного сайта, но если он очень популярен? Тогда этот механизм не подойдет.
Увы, для разгадывания капчи могут быть использованы и непосредственно человеческие ресурсы.
Идеальная капча должна быть разрешима (человеком) только в контексте сайта, на котором она установлена, и терять смысл будучи от сайта оторванной. Но таких еще не видел.
Да, действительно, единственный выход фильтрации спама — задавать вопросы в тему (т.е. на форуме вопросы по программированию), но это может остановить многих людей, которые хотели бы зарегистрироваться, но не имеют этой возможности ввиду недостаточных знаний в данной области.
Captcha: Кошка или собака?