Как стать автором
Обновить

Комментарии 133

Для Honeypot captcha есть модификация со случайными названиями полей (id), включая 1-2 «ложных» поля — это еще больше усложняет жизнь спамеру.

Спасибо за перевод — хороший уровень!
Благодарю за приятный отзыв, как я уже говорил, это мой первый подобный перевод.
И перевел я на одном дыхании — потратил где-то 14 часов, практически не поднимая задницы со стула. Узнал много новых фразеологизмов и идиом. Даже гугл-транслейтер (которым я иногда пользовался, когда не понимал, что значит то или иное выражение) не знает, что coiner — это не только фальшивомонетчик или квалифицированный работник монетного двора, это еще и кто-то, кто является источником какой-то новой информации. Такие дела.
Да, «coined a term» — «придумал термин», а переводя по отдельности это — «отчеканил срок» :-)

Слушайте, 14 часов работы без отрыва — это серьезно! Расскажете свой рецепт вхождения «в поток»?
Да я сам себе удивился. Когда писал этот комментарий, я рассчитывал где-то на июль. Сегодня подумал, переведу-ка страничку-другую. Вот и перевел всю статью :)
Поставить RescueTime и честно ему отвечать на вопрос «чем ты занимался» после отсутствия. Потом по первым его отчетам станет стыдно (перед самим собой), куда время тратишь, и будешь работать подольше. Я по отчетам этого RT на программирование трачу 12 часов в день в среднем за последние 3 месяца (сегодня вот расслабился, на Хабр зашел, 12 часов не наберу :)
Помимо гуглтранслейта есть онлайн-словарь с просто огромнейшей базой: мультитран, все различные фразеологизмы, включая редкие, и различные научные технические словосочетания я смог там найти.
мультитран это круто ;) только вот он тормозит немного.
Я бы сказал, он слегка не работает днем. То есть почти совсем :-)
Вы озвучили то, что я думал, пока читал статью. Можно же именовать поля формы случайными последовательностями букв и цифр, и даже называть их вразброс (поле для имени — email, поле для пароля — name и т.п.) и регулярно менять местами id'шники. Кроме того ввести невидимую капчу, которая будет называться «captcha». И если в ней появится значение, то это явно бот. Заодно можно проверить, не ввел ли он куда-нибудь не то, что надо, например в поле для имени строку со знаком @.
на самом деле, учитывая всеобщее игнорирование или незнание правил русского языка (для русскоязычной аудитории) идеальным вариантом капчи можно назвать словарный диктант. Например, как правильно написать: «продам дешево» или " продам дешего", «гулять по шасэ» или гулять по шоссе", «красивая аллея» или «красивая алея». Если выбран верный вариант — скорее всего парсится робот )))
Суть моего предложения в том, что пользователю ничего делать не нужно.
Спамерские тулзы могут использовать встраиваемый IE, т.е. парсить html реальным браузером, выполнять скрипты, возить мышкой, учитывать видимость полей и т.д. Я таких не видел (на моих сайтах с динамическими JS-формами они не отметились), но раз есть всякие не-спамерские RoboForm'ы, то и спамерские должны быть :)
Но как они смогут заполнить поле, если не знают, куда какой текст вводить?
Мы говорим о спаме в комментариях на веб-страницах? Тогда там обычно всего одно поле (как здесь на хабре).

Изредка просят ввести еще email, тогда где-нибудь около этого поля в html так и написано «email», иначе человек, как и бот, не догадается, что туда надо email вводить. Не хватало еще капчей титлы полей рисовать :)
Это да, согласен. Но таким способом можно отсеивать на этапе регистрации.
Очень интересно, спасибо.

В принципе, обо всех этих методиках слышал, но не в одной статье сразу, с описание плюсов и минусов и хоть какого то сравнения
Открывал статью с мыслью что очередной умник придумал «самую лучшую в мире каптчу».

Вы перевернули мои ожидания :) Отличная обзорно-аналитическая статья и отличный перевод!
Благодарю :)
Есть такая мысль, что лучше бы та же reCaptcha собирали просто сабмиты форм, анализировали (сопоставление имя поля и его значение) и данные отправителя (ip, user agent, etc). Таким бы образом можно было собрать blacklist и просто выдавать сообщение об ошибке, что данные компьютер рассылает спам, если вы считаете что это ошибка сообщите по урл. Собственно что-то вроде блеклиста для подозрительных сайтов. Только в данном методе никаких проблем для пользователя сайта не возникает, если конечно он не нахватал полный компьютер троянов, но другие ведь не должны из-за него страдать.
А ещё лучше это же api, он возвращает в % вероятность что данный сабмит является спамом. Администратор сайта уже сам из полученных данных решает что ему делать с этими данными, возможно добавить если это комментарий или статья на перемодерацию, а если порог меньше допустимого, то сразу для публичного добавления. Как-то так. Не знаю как работают подобные упомянутые системы в статье, но считаю описанный вариант единственным правильным решением. Всё остальное распознаётся если не роботом, то человеческим трудом через специальные сервисы и стоит он очень дешёго.
Масса народу работает через NAT'ы, когда за одним IP сидят сотни народу (а в случае мобильных операторов и тысячи), и тогда один веб-спамер в такой сетке испортит малину сразу всей толпе на этом IP. Если в случае почтовых RBL это еще можно вынести (не каждый пользователь за NAT'ом ставит себе почтовый сервер :), то для веба черный список ip/ua скорее вреден.
То верно, с модема CloudFlare всегда капчу выкидывает — мол "Вы в чёрном списке". Бесит. Сколько проклятий лично я обрушил на них. Не один массовый сайт не выживет с такой стратегией. И на IPv6 смотреть не надо — это никудышная стратегия, вот и всё.
у которой так же есть еще одна «фича» — помощь в оцифровке книг силами пользователей.

Меня всегда интересовало — как это? Серверу же уже известны верные слова в капче, иначе бы любое слово было бы признано верным.
Не-а. Сервер сравнивает результат пользователя с результатом OCR, так же выбираются слова, перед и после которых все уже определенно прочитано. Ну и текстовый анализатор дает оценку, подходит ли ответ пользователя или нет. Кстати, насколько помню, часто можно не вводить первое слово (или ввести чепуху), не знаю, почему.
Никогда не думал, что все так запутанно. Думал все эти картинки со словами генерируются на сервере. Спасибо за интересную информацию.
Если внимательней присмотреться, то первое слово всегда «корявее» второго. Его-то и нужно «оцифровать».
Т.е. вы ввели 2 слова с картинки, первое пошло в базу по оцифровке, второе (которое сервер изначально снал и сгенерировал) используется при проверке.
Именно поэтому можно «ввести чепуху» для первого слова — оно не учитывается при валидации сабмита.

Разбор же происходит так: непонятное роботу слово показалось 100 пользователям, 90% из них «сообщили», что это слово — "****" — значит можно верить.
Простите, ответил, потом заметил аналогичный по смыслу комментарий ниже
У reCaptcha не зря показывается два слова — одно из них точно известно серверу, второе нет. Неизвестное показывается многим пользователям, после чего выбирается правильный вариант ;)
А пробовали первое слово писать нормально, а вместо второго писать «fuck»? Проходит в 80% случаев :)
А я «nigger» пишу.
Хотел бы я почитать книги, оцифрованные гуглом, которые распознавались с применением ваших вариантов капчи :)
Надеюсь, большинство людей всё же пишет нормальные распознанные слова, а не «fuck» и тому подобное. Хоть какая-то польза от капчи
Отличный текст, спасибо
Обязательно добавлю в закладки и вынесу данную тему на осеннюю конференцию в университете
По поводу друзей — капча недоступна людям, не умеющим распознавать лица (см. www.faceblind.org/ )
а они могут проводить больше времени за компьютером (т.к. социальные взаимодействия для них могут оказаться сложнее чем для остальных)
Абсолютно верно, что идеальная капча — отсутствующая. Не ставлю у себя нигде эту жуть, просто модерирую мусор там, где это нужно. У нас половина пользователей вообще не в состоянии разобрать ее. Даже я, свободно владея заморской мовой, и то не могу порой разобрать. Чего уж про обычных людей говорить.
Для себя нашел идеальную капчу: «3+4 = ?»
Поясню:
Этой проверки хватает, чтоб закрыть сайт от роботов, ктороые просто шукают в просторах формы для поста.
Если ресурс не большой — никто специально переписывать робота под него никто не будет, ибо в большинстве случаев за ними вообще никто не следит. А напишут — поменяем на «три + 4 = ?».

А для пользователей — это элементарная операция, на которую он потратит меньше секунды (и никак не 10, как писалось в статье)

Абсолютно та же история, только у меня 3-5 вопросов вида «Кто придумал таблицу Менделеева», выскакивающих рандомно :-)
обычно дял каждого форума первый проход осуществляет человек, записывая правильные ответы, а потом уже ботскрипт генерит там пачку аккаунтов, что бы постепенно их использовать под спам.
против этого вашь способ не подходит.
у нас стоит ряд цифр и вопрос выберите среднее число — первый месяц было хорошо, потом видимо кто-то руками прошел и стали опять пустые регистрации идти.
Дык от этого никак не защититься…
Даже придумай вы самую заумную капчу — пишеться скрипт для автозаполнения всех форм, садится индусик, который будет ток вбивать эту самую капчу…

Меня мой способ спала на форме обратной связи! от сообщений типа «проститутки москвы».
Пока есть фермы по распознаванию из реальных людей — пожалуй да.
Но можно попытаться усложнить скриптование и авторегистрацию. Вводить вопросы, ответ на который не очевиден, распознавание не текста, а объектов.
у меня был проект небольшой, была простейшая капча, которую проходил любой бот, в основном в связи с тематической направленностью проекта, меня «проспамивали» именно сеошники, проставляя сотни ссылок в гесте и каментах, но идея была в том, что раз в неделю все коменты содержащие ссылки собирались, парсились, каждая ссылочка проверялась в гугле на предмет массовости, если оказывалось, что я не один такой счастливчик, то в сервис спамрепорта гугла, яндекса, яху и пр. формировались письма с просьбой обратить внимание на данных товарищей, обычно заканчивалось абсолютной аннигиляцией сиих творений из выдачи с фильтром(яндекс) или баном(гугл). в итоге оставалось только клацнуть на пимпе — Удалить каменты.
Коварно.
Справедливо.
Спам не является проблемой пользователей, это проблема людей, администрирующих сайт. Это очень высокомерно со стороны администраторов – сваливать такую проблему на плечи пользователей сайта.

В точку! Сам отказался от капчи на сайте.
мне как то приходила в голову идея сделать капча на основе оптических иллюзий, которые может видеть только человек, в силу несовершенства своего мозга, но так и не придумалось достойной реализации.
Такая концепция — плевок в сторону людей с проблемным зрением.
Cогласен, но ведь есть много текстовых капча, которые и зрячему то трудно разобрать! Так что сама идея не идеальна, нужен новый вектор.
да любая капча плевок в их сторону поэтому и делают дополнительную аудио подсказку на крупных ресурсах.
И как же будет звучать подобная аудиоподсказка для вашей концепции? D:
«Перед вами четыре линии, пересекаемые еще четырьмя линиями. Они кажутся не параллельными. Параллельны ли они?»
аудио естественно обычная а не концептуальная. ставить ли аудио это решение самого сайта которому необходимо выбирать между риском распознования аудио спамерами или потерей клиентов с ограниченными возможностями. Такой выбор и сейчас стоит перед сайтостроителями.
Да любая капча плевок в сторону людей вообще. С какой стати человек должен доказывать роботу (серверу), что он человек, а не робот? Пусть робот доказывает, что он человек, если хочет пользоваться человеческими правами (постить на сайты). Если докажет, значит достоин постить, на текущем уровне технологии :)
вы, простите, бред какой-то пишете.
как вы определите, что это робот, что бы заставить только его что-то доказывать?
Это дело сервера разбираться с этим. Вы когда электронное письмо в почтовом клиенте (Thunderbird'е, Outlook'е) пишете, не доказываете же ему, что вы человек. С вашими (и спамерскими) письмами разбирается принимающая сторона — если она умеет (сама, без CAPTCH'а) отличать людей от роботов, то читает почту, если не умеет, то коллекционирует спам. Чем веб-сервер хуже почтового сервера? По-моему, ничем. Веб-серверу даже намного проще — веб-спам пока еще не так распространён, плюс в вебе обычно требуют регистрации при отправке, плюс в вебе на клиентской стороне браузер с javascript'ом, с которым сервер может вступить в произвольный «диалог» невидимо для пользователя (тут это уже обсуждалось), плюс не существует никаких стандартов на формат поста (в отличие от SMTP и MIME в почте) и т.д. В общем, жизнь у веб-спамера намнооого сложнее, чем у почтового. И если при всём этом хозяин сайта вынуждает пользователей разгадывать загадки, то это лишь говорит о его (хозяина) технической слабости.
> Это дело сервера разбираться с этим.
вот-вот, я об этом вас и спрашиваю, как вы научите сервер отличать.

> Вы когда электронное письмо в почтовом клиенте (Thunderbird'е, Outlook'е) пишете, не доказываете же ему, что вы человек.

плохой пример, в сети 95% сообщений это спам, и именно из-за того, что отличить его ни почтовая программа, ни сервер не в состоянии.

> Чем веб-сервер хуже почтового сервера?
вообще то он получше в некоторых вещах, но судя по всему вы в этом не разбираетесь.

> плюс в вебе обычно требуют регистрации при отправке,
в почте то же — и толку? :)

> плюс в вебе на клиентской стороне браузер с javascript'ом
да где же? у меня везде перманентно отключен.
не говоря уж об исторических компьютерах и текстовых браузерах.

> плюс не существует никаких стандартов на формат поста (в отличие от SMTP и MIME в почте) и т.д.
формат поста фактически так же стандартизирован на уровне протокола общения сервра веб как и протокола smtp.

> В общем, жизнь у веб-спамера намнооого сложнее, чем у почтового. И если при всём этом хозяин сайта вынуждает пользователей разгадывать загадки, то это лишь говорит о его (хозяина) технической слабости

вы утверждаете, что у вас есть «серебрянная пуля», только вы никому не рассказываете, как же так уникально настроить, что бы спам пропал. обманываете значит…
> плохой пример, в сети 95% сообщений это спам, и именно из-за того, что отличить его ни почтовая программа, ни сервер не в состоянии.

В вашей почте 95% спам? В моей 0.01%. Я думаю, что у большинства тоже не много. Именно из-за того, что почтовые серверы уже достаточно хорошо его фильтруют.

>> плюс в вебе обычно требуют регистрации при отправке,
в почте то же — и толку? :)

Нет! По SMTP почту можно отправлять без регистрации (на MX только без регистрации и отправляют), «но судя по всему вы в этом не разбираетесь».

> только вы никому не рассказываете, как же так уникально настроить, что бы спам пропал.

На эту тему уже «всё придумано до нас». www.eserv.ru/StatisticalSpamFiltering
> В вашей почте 95% спам? В моей 0.01%.

снаружи почтового сервера 95% спама.

> Именно из-за того, что почтовые серверы уже достаточно хорошо его фильтруют.

фильтруют вовсе не почтовые сервера, а отдельно настраиваемые пачки фильтров, которые от сервера к серверу отличаются, и зависят только от упорности администратора. и технически только часть из этого потока действительно классифицируется как спам, остальное — всякие вероятностные фильтры, которые не дают четкого ответа.

> По SMTP почту можно отправлять без регистрации
а можно и с регистрацией. это как в вашем случае с сайтом, регистрацию может пройти человек, и дальше использовать механизм спамбота.

> На эту тему уже «всё придумано до нас». www.eserv.ru/StatisticalSpamFiltering

а, банальный баес, который уже столько же лет как существует, столько же и обманывается спамерами. если бы вы пользовались только им, сейчас у вас ящик был бы завале наполовину спамом.
>снаружи почтового сервера 95% спама.
Ну так и снаружи веб-сервера 90% спама.

Угу, банальный байес. Пользуюсь только им уже лет 8 (как раз описанным в статье PopFile), никаких проблем. Точнее, 1-2 спам-письма в день попадает таки в inbox, но это такой спам, который действительно очень похож на не-спам :)
> Точнее, 1-2 спам-письма в день попадает таки в inbox,
небольшой сервер? нет переписки с англичанами, итальянцами, китаем?

Итак, ваше предложение — отмена регистрации (или только капчи?) и прогон всех сообщений через баес?
Боюсь реальные люди перестанут иметь возможность писать на такой форум. Не пройдут проверку против в десятеро большего количества спамеров забивающих баес цитатами из библии, льва толстого и т.п.
Да, сервер небольшой — около сотни наших ящиков плюс около 50тыс. партнерских (на наших доменах). Переписка с иностранцами есть, т.к. продаем наш софт через интернет с 1997 года. Английская, итальянская и китайская версии есть, клиенты оттуда тоже, но переписываемся со всеми по-английски, китайский не понимаем. До 2008го года в сервере даже фильтр на китайскую кодировку стоял, при обновлении сервера он (фильтр) пропал, но больше спама от этого не стало.

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

Да, спам с цитатами из классиков проходит через байес. Раз в год. Почему-то не любят их спамеры. Хотя мы почитать не против :) До сих пор вспоминаю замечательную подборку из Тютчева, присланную одним спамером года 3-4 назад нам в техподдержку. Что он там рекламировал я не помню, а стихи хорошие.
Появилась у мну одна идея «невидимой капчи»… А именно — мышь.
Ведь из браузера можно получить координаты мыши в окне! Так вот, у ботов они с вероятностью 99,9% будут иметь значение 0,0. И у 99,9% пользователей мышь там находиться наоборот не будет.
Итак, мы просто подписываем отправляемые данные с помощью какого то рендомного ключа и координат мыши! На стороне сервера вычисляем аналогичный хэш, но с координатами 0,0. Если хэши совпадут — айайай, господин спамер, не пущаем!

У этого метода есть два серьёзных минуса:
1. Он требует яваскрипт. Без яваскрипта этот метод не сработает вообще никак
2. Он требует серьёзной обфуксикации кода, который формирует этот хэш.
Я, как перфекционист, терпеть не могу когда используют «99.9%». Это же надуманная цифра, в крайне редких случаях она действительно доказана.
Используйте выражение «подавляющее большинство» и ему подобные, все таки так правильнее :)
Кроме того, чтобы проверять координаты мыши, нужно принять во внимание, двигает ли мышью пользователь? А в случае взлома каптчи (можно программно изменять координаты указателя): плавно ли?
Кстати да, я когда регистрируюсь на всяких мусорных сайтах в поисках необходимой, но редкой информации, пользуюсь табуляцией.
Я и в не мусорных сайтах пользуюсь табуляцией, но вероятность того, что мышь будет в координатах {0, 0} крайне мала.
А если на устройстве ввода нет мыши (телефоны, планшеты)?
Тогда там не будет и табуляции, и пользователю как минимум прийдется тыкнуть в текстфилд, если он не один на странице конечно. Соответственно и координаты не будут уже равны 0. Хотя точно не знаю, в тонкостях мобильного js не силен.
Если сайт хоть минимально востребован (или такая капча получит хоть минимальное распространение), то боты будут подставлять случайные координаты мыши.
Да что там подставлять — они ей двигать будут даже :-)
Отличная статья! Спасибо!
Отличная статья и перевод превосходный!

Не согласен только с одним утверждением о том, что капча нужна только для защиты от спама и в идеале от нее стоит избавиться. Не учтен брутфорс к формам авторизации. Есть способы защиты от подобных действий без капчи, но что если все-же там сидит человек (в моем случае спамер-человек не рассматривается как угроза) и, скажем, 3 раза неверно ввел свой пароль… вот тут и надо ему показать капчу, да такую, чтобы впредь вводил пароль правильно с трех попыток.
Обратите внимание на начало статьи, там декларируется понятие «спам» :)
Прошу прощения, зачитался :))
Мне казалось что фейсбук предлагает определить фотки друзей, которые отмечены на _ваших_ фотках, то есть тех, которые вы сами там понаотмечали. Хотя не уверен.
К сожалению, у меня нет возможности проверить — Facebook упорно продолжает кидаться в меня контрольным вопросом при попытке восстановления пароля.
Я отсеиваю 80-90% спама текстовой капчей с русскими загадками.
При необходимости можно подключить Mollom.
Русские загадки это «Где зимует рак?» и «Чью мать я вам покажу?» :-)
Загадки из детва которые любой русский знает, а басурманин пасует. Пример — сидит девица в темнице, а коса на улице боты и EN спамеры идут лесом. Остается ручной спаминг русскими спамерщиками, но это дорого и неэффективно.
Про девицу даже я не ответил бы — забыл, что это такое :-(
Monkeyman == BOT
)
*старательно двигает мышью, изображая человека*
Странно, но почему-то про использование капчи в качестве (некоторой) защиты от подбора пароля к аккаунтам не рассказывается.

Недавно, для защиты от массовых регистраций (отсекания нехороших ip-адресов), использовал API сервиса www.stopforumspam.com/ и довольно успешно.
Не рассмотрен альтернативные вариант — доверенные пользователи. То есть люди, которые бы получили сертификат привязанный к мобильнику могли бы не вводить капчу.
Скажите, а нельзя на создание капчи посадить нейронку? То есть имеется алгоритм, который создаёт абсолютно разные капчи, затем набор экспертов оценивает их читаемость, выставляет оценки каждой капче, система обучается, а потом выдаёт капчи, похожие на те, что читаются лучше всего?
те, что читаются лучше всего они и распознаются спам ботами быстрее всего. самое сложное найти компромисс между читаемостью с распознаваемостью.
Тогда можно ввести многокритериальную оценку, например простота распознавания и внешняя сложность. То есть, например, капча с белыми буквами на чёрном фоне получит максимум за простоту и минимум за сложность. А дальше как-нибудь вывести оптимальную формулу.
Мне кажется или до сих пор никто не подумал о создании captcha из 2 и больше картинок?
Приведу пример на 2х картинках:

<?php
    session_start();
    ?>
    <img src="captcha.php?step=1" /><img src="captcha.php?step=2" />
    <form method="post">
    Введите число: <input type="text" name="getСode">
    <input name="sub" type=submit value="Ввод">
    </form>
    <?php
    if(isset($_POST['sub']))
    {
        if($_POST['getСode'] == $_SESSION['step1'].$_SESSION['step2'])
        {
            echo "Число введено верно";
        }
        else
        {
            echo "Число введено неверно";
        }
    }


captcha.php
<?php
    session_start();
    
    $step = isset($_GET['step']) ? intval($_GET['step']) : null;
    
    if ($step == 1)
    {
        $string = $_SESSION['step1'] = rand(100, 999);
    }
    else
    {
        $string = $_SESSION['step2'] = rand(100, 999);
    }   
    
    $im = imagecreatetruecolor(80, 45);
    imagealphablending($im, false);
    imagesavealpha($im, true);
    $trans = imagecolorallocatealpha($im, 255, 255, 255, 227);
    $black = imagecolorallocate($im, 255, 255, 0);
    imagefilledrectangle($im, 0, 0, 299, 299, $trans);
    imagealphablending($im, true);
    imagettftext($im, 40, 0, 0, 48, $black, '28 Days Later.ttf', $string);
    header("Content-type: image/png");
    imagepng($im);
    imagedestroy($im);


Итог:





По идее при такой капче даже хрумеру->антигейту будет сложно разобрать её.
А можно увеличить кол-во картинок до 3-4-5 и так далее…
Две каптчи — уже слишком, иногда одну не прочитать.
А капча в примере очень легко распознается без антигейтов, обычным программным методом.
Тогда уже лучше спрайты заюзать, генерить сразу несколько картинок, потом, меняя офсет, показывать нужную.
Понятно, что не панацея, но в качестве усложнения жизни спамеров — как вариант. Тем более, что на жизнь пользователей это не повлияет.
Вы неправильно меня поняли.
Пользователь видит всё как обычно — 1 картинку, которая склеена из 2х изображений.
2 Изображение выше это пример того что мой код работает и каптча введена верно.
Я так подумал, глядя на
    <img src="captcha.php?step=1" /><img src="captcha.php?step=2" />

Это 1 каптча из 6 символов, режется на 2 части по 3 символа :)
Все, глядя на PHP код понял.
Такой прием используется при регистрации на mail.ru, там 3 картинки сделано.
К сожалению это не помогает, картинки элементарно клеятся
И тогда конверсия упадет ниже плинтуса. Капча должна быть простой, чтобы не сильно напрягать пользователя и сильно напрягать роботов. Меня бесит когда я не могу с третий попытки ввести одну капчу. А если их 2 и более. Да нафига мне такой сайт нужен?
Делаем 5 самых простых (как в примере выше) картинок (по 1 цифре или букве) склееных между собой, пользователь видит 1 картинку.
Для пользователя каптча легкая, видно все сразу. Для хрумера же или других нечестей это уже будет посложнее.
Все роботы для сайтов затачиваются исходя из сайта. Зайдет человек и увидит что здесь пять картинок. Алгоритм распознавания одной у него есть. Запустить его на пять не сложных картинок и склеить результат мне кажется не сложно.
Здесь на хабре были примеры алгоритмов и я думаю за полчаса даже мне с готовым алгоритмом удастся сделать робота. Может конечно утрирую, но все-таки…
Я не сказал что это не выполнимо. Такая каптча может подойти для форумов (vb, ipb..) при регистрации хрумером.
Было бы ещё интересней, если бы эта картинка резалась на случайное число прямоугольников, которые бы потом выводились в случайном порядке и позиционировались в одну картинку посредством CSS.
Согласен. Я просто подал идею…
Придумали ещё несколько лет назад, даже была реализация. Картинка резалась по матрице на разное кол-во кусочков и рандомно генерировались уникальные id слоёв, потом генерировалось css и js для собирания этих слоёв в картинку. Даже защиты были, одно из которых куски картинок должны были в определённом порядке подгружаться, это отслеживалось в сессии на стороне сервера. Всё хорошо, только когда мы начали тестировать, масштабно в рамках одного крупного проекта для которого и делалась уникальная каптча, то был написан софт на с++ который сохранял кусок скриншота этой каптчи одной картинкой и отправлял на распознавание.
Идеальная CAPTCHA – отсутствующая CAPTCHA.
Действительно, а я и не заметил
Вы все правильно написали. Спасибо Вам за статью. Если уместить всю статью в одно предложение, то будет именно это предложение.
Упомяните, пожалуйста, OpenID рядом с Janrain, а то может сложиться впечатление что он уже умер.
Мы убрали капча создавала много проблем «людям с ограниченными способностями». Поэтому мы убрали ее. А заодно и о тупых бло… эээ… «представителях женской половины со светлым типом волос и ограниченными умственными способностями» позаботились ;)))
Спасибо, отличная статья!

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

Чем данный способ хорош: спамеры не станут покупать кучу номеров, ибо это накладно, мобильные телефоны на данный момент есть уже практически у всех, впрочем, в случае его отсутствия никто не мешает сделать альтернативное подтверждение звонком на городской, для пользователя совсем не сложно ввести код из SMS.
Минусы: это дорого для администрации сайта (хотя высокодоходные проекты могут себе это позволить).
Алсо, более дешевый метод: звонок по Skype. Т.е. при регистрации пользователь указывает свой Skype, туда звонят и называют код.

Плюсы:
— недорого
— с распознаванием речи у компьютеров плохо
Минусы:
— Skype есть не у всех
— Так же не у всех есть наушники или колонки
— Конечно же время.

Но если делать это один раз (при регистрации), получится нормально, на мой взгляд.
Расскажу историю про скайп: есть у меня приятель, фанат всевозможных линуксов. Только вот всё время так получается что в скайпе под его любимый на этой неделе дистрибутив что-то там чуть-чуть недопилено, поэтому по скайпу с ним никак не поговорить.
Не спорю, я написал это в «минусах». Я же не говорю, что нужно использовать именно Skype, а про саму схему.
Вы упустили очень важную мысль, высказанную в топике:
Если метод слишком медленный, значит, он не стоит того
Вот только не надо SMS. Будете терять всё заграничную аудиторию. Как мне объяснить такой патриотичной форме ввода 8-[___]-[_______] что у меня сотовый начинается с +44, а не с +7 или 8?

А российскую симку раз в пол-года оператор зачем-то деактивирует, спасибо ему преагромное. Каждый раз, как приезжаю домой — здравствуй, родина — сразу в аэропорту иду новую симку покупать.
В общем форма не должна начинаться с 8-рки ;) Посмотрите, как это реализовано при регистрации в Gmail.
О боги, я же только что на это натыкался. Покупал авиабилеты у АвиаНова. Два часа пытался купить, не понимал, что форме регистрации не нравится. Поменял +7 на 8 — вуаля!
Мне кажется, люди сейчас в пору махинаций с подписками на «рассылки», настороженно отнесутся к требованию вести номер телефона а потом пришедгий на него код на незнакомом сайте.
Минусы: многие не захотят палить свой телефон ради регистрации на вашем сайте. Я бы точно не стал.
Какое число из 3, двадцать девять, 70, 46, 65 является наименьшим?
Вот это порадовало. Что мне там писать, «три», «3», «первое», «вы дебилы, чисел четыре», «двадцать девять», «29», или «писец нимагу панять».

Наверное, я просто бот…
Я думаю, неудачные ответы надо сохранять в логи и просматривать на предмет альтернативных решений, которые стоит добавить в список правильных.
Да, но тем временем куча народу будет просто получать от ворот поворот.
Предположу, что три то же вошло в ряд.
Т.е. вопрос звучал
«Какое число из: 3, двадцать девять, 70, 46, 65 является наименьшим?»
Это один из вариантов ответа, да.
> Модерация везде, где только возможно
Ручная — модераторов мало, а автоматическая — это ещё большее зло. Был у меня узкий и срочный вопрос то ли по дайвингу, то ли по паяльным делам, я зарегистрировался на специализированном форуме. А открыть тему не даёт — надо сначала написать десять сообщений в других темах. Пришлось работать роботом, писать в каждую тему что-то вроде «ух ты», «плюс адин» и «поддерживаю».
А если ручная регистрация, то опять же, вопрос срочный, а модератор, видимо, в запое третий день. Чего делать?
А на одном форуме модератор отклонил мою регистрацию, сказал что я бот, так как я ему по соображениям безопасности не расписал в форме всю свою биографию с телефоном и номером квартиры где деньги лежат.
НЛО прилетело и опубликовало эту надпись здесь
Регистрировался на одном специализированном форуме, так пришлось легкие задачи по ТОЭ решать, и вспоминать, какие выводы бывают у полевого транзистора. В общей сложности заняло 10 минут. К чему это я. Необходимо будет человеку зарегистрироваться, он какую хочешь вырвиглазную капчу распознаст.
А если например как нибудь так сделать:
Image and video hosting by TinyPic
Т.е. берем фото, из одной части цвет берем и в другой части текст этим цветом вставляем(ну и чуток текст искривляем, буковки делаем частично прозрачными).
Для людей с нарушениями зрения, слуха или моторики будет создана программа по распознаванию капчь как часть accessebility пакета в операционке.
У меня немного оффтопный вопрос. Вот вы пишете: «при обязательном указании авторства», но кто автор — не написано. И хрен знает, как автора указывать. Посетитель, впервые зашедший на хабр, автора вообще не найдёт. Что должен делать человек в таком случае?
Я так понял, что по условиям лицензии я должен указывать автора этого топика (т.е. перевода), а не автора оригинала (а вообще, и того и другого, конечно же). Если с автором оригинала всё понятно, то с автором топика у меня возникают проблемы следующего характера:
1) Юзернейм топикстартера на хабре могут найти только внимательные юзеры. Я не очень внимательный, и иногда с этим затрудняюсь (всё время ищу в начале поста).
2) Даже если догадаться, где искать автора поста, непонятно, как его указывать при копировании. Формулировки «Хабраюзер Adiost» будет достаточно с юридической точки зрения? Или необходимо давать ссылку на профиль хабраюзера?

В общем, как-то не по людски. Я бы предпочёл вместо непонятного «указания авторства» просто копировать специально подготовленный блок текста, в котором написаны условия лицензии и уже указан автор, причём именно в том виде, в котором автор хотел бы, чтобы его указывали. И тогда все будут счастливы.

С неюридической точки зрения мне, конечно же, проще поставить гиперссылку «стырено отсюда» и не париться, но думается мне, что это не согласуется с условиями лицензии.
Честно говоря, переводы — больное место CC. Фактически я взял оригинальный текст и перевел его. Это вроде как модификация. Но! Я модифицировал его фактически на 100%. В таком случае, это полностью моя работа и авторство мое (на что я и рассчитываю).
Никнейм с юридической точки зрения — пустой звук. Зайдите в мой профиль, там есть имя и фамилия.
Добавить блок «автор текста XXX, переводчик YYY» думаю достаточно.
И при копипейсте скорее всего останется.
> Либо бороться со спамом вручную, либо просто забыть про интересы пользователей – выбор за вами.
Бороться со спамом модерацией может предлагать лишь человек проекты которого никогда не спамили. Я честно пытался обойтись без капчи, но когда спам начал сыпаться быстрее чем его возможно удалять, пришлось поставить рекапчу. Спам продолжает идти, но уже терпимо.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории