Хочу познакомить Вас с моим маленьким изобретением – многослойной капчой, которая родилась при написании скрипта доски объявлений. Я подготовил материал, который будет удобен для восприятия, кроме того есть работающий пример и комплект скриптов. Все бесплатно.
Сейчас борьба с автоматическими системами распознавания текста, используемых в спамерских программах достигла некоторого пика, когда чрезмерное усложнение капчи приводит к тому, что уже и пользователю становится трудно разобрать изображенный текст.
Я представляю капчу, для которой на сегодняшний день нет решений, позволяющих автоматизировать ее распознавание. Фишка не в использовании фумов, шрифтов и прочих искажений изображения, хотя эти методы можно с ней комбинировать. Все проще, но этот способ потребует от спамеров качественного перехода на новый уровень работы с анализируемой формой и документом, защищенных капчой.
Двухслойная капча
В основе идеи лежит отображение защитного кода (в примере использовано число, но это могут быть и символы) двумя (или более) картинками.
Итак, мы генерируем число AAABBB и число RRR, где:
AAA, BBB и RRR – числа в диапазоне 1..999
Из них мы делаем две картинки:
на одной изображено AAA и она будет закрывать половину второй.
на второй изображено RRRBBB и часть RRR не будет видна за AAA
Пользователь визуально воспринимает ее как одно число AAABBB.
Автомату же для ее распознавания придется анализировать весь документ, включая стили CSS, чтобы определить, какие картинки изображают код (их может быть и более двух), в какой последовательности они закрывают друг друга и какие части остаются видимыми, чтобы отбросить лишние (закрытые) символы.
Реализация капчи:
Я сделал простую реализацию этой капчи, использовав CSS, mod_rewrite и PHP. При реализации не стоит забывать о необходимости запрета кэширования картинок браузером.
Пример работающей двухслойной капчи.
Ссылки:
Скачать описание двухслойной капчи (Word)
Скачать скрипт капчи (php)
Мои проекты, защищенные этой капчой:
- Интернет-магазин: ультразвуковая стиральная машинка Ультратон (защищена форма обратной связи);
- Мастербилдер.ру – бесплатные строительные объявления (защищена форма добавления объявлений);
Июнь 5th, 2008 в 10:07 пп
�?дея весьма интересна. Только почему-то пример капчи построен несколько иначе, чем описано в статье?
То есть, здесь описывается наложение AAA и BBBBBB с результирующим AAABBB, а в примере видно что-то вроде AAA BBB BBB и предлагается ввести только красные цифры.
По-моему, тут есть некое визуальное противоречие (хотя, конечно, принципиально возможна и такая реализация, с чем, конечно, не спорю).
Июнь 5th, 2008 в 10:10 пп
Да нет. Красные цифры у меня просто были в исходном коде, лень было выбрасывать =).
А пример полностью соответствует идее.
Капча в примере состоит из изображения RRR BBB
и закрывающим часть RRR изображением AAA (я все про красные цифры). Серые это бонус , игнорируйте их.
Июнь 13th, 2008 в 7:51 пп
это все как-то сложно но здорово
Июль 11th, 2008 в 5:13 пп
Петр, это стоит того чтобы не спамили! �?МХО!
Июль 21st, 2008 в 12:15 дп
Олег, простите. Пусть Вас не �?окирует мой вопрос – я блондинка, – но я не совсем понимаю, что из себя должен представлять рисунок, просто фон или фон с цифрами. Буду Вам очень благодарна за ответ (мне очень-очень хочется избавиться от спама)!
Июль 21st, 2008 в 10:46 дп
Код, который должен ввести пользователь – на двух картинках: половина на одной картинке, половина на фоне, причем на фоне, закрытом картинкой(1) дополнительно ложные цифры кода.
Июль 25th, 2008 в 1:04 пп
Олег,
у меня есть один рабочий вопрос-проект, который я хотела бы с Вами обсудить. Буду признательна, если напи�?ите мне на почту.
Июль 25th, 2008 в 11:05 пп
Очень интересное ре�?ение, попробуйте сделать плагин для WordPress. Я бы очень непротив такой у себя оставить, ато спам просто задолбал.
Присмотритесь к идее, наверняка потом получите множество бесплатных ссылок от блоггеров, пи�?ущих на тему SEO и блогов. А там и трафик и подписчики сильно подрастут.
Август 12th, 2008 в 5:29 дп
oleg_banshee, вы конечно простите, но у меня сложилось такое впечатление, что о том, как делать безопасные капчи у вас нет ни малей�?его понятия.
Да будет вам известно, даже javascript умеет делать скрин�?от страницы и отсылать его на сервер (в последних реализациях даже делается скрин�?от flash). Так боту и не надо будет анализировать килобайты html и css. А в конечном итоге картинка будет такой же, какой ее видит пользователь.
Не используя векторную графику и фильтры искриления и за�?умления капчи, ва�?а капча всегда будет уязвима.
Август 13th, 2008 в 11:09 дп
Ага, капча должна быть надежной, согласен
Август 14th, 2008 в 10:54 дп
MaxHero, во-первых боль�?инство сабмиттеров анализируют данные формы – их мой метод способен отпугнуть. Что до более сложных систем (упомянутый Вами серверный Xrumer, видимо), то да, в этом случае мой метод можно (и нужно) комбинировать с другими известными методами: искажение изображений, использование логических элементов.
Август 16th, 2008 в 5:41 пп
Спасибо боль�?ое за то что все толком объяснили и разъяснили.
Август 18th, 2008 в 1:55 пп
�?дея действительно интересна! Бедные боты – спамеры Надо теперь сделать плагином под WP. Если есть такая реализация то где можно посмотреть?
Август 22nd, 2008 в 4:48 пп
�?дея интересная. Но уверен, если станет массовой – создадут и бота под неё
Сентябрь 4th, 2008 в 12:44 пп
Так будет ли плагин под WP ? вот в чём вопрос )
Сентябрь 13th, 2008 в 9:36 дп
Сказала Юля и добавила ссылку))Такие защиты хоро�?и, но увы иногда мне кажется что борьба со спамом заведет до сложности обычным юзерам писать))
Ноябрь 9th, 2008 в 2:20 пп
Замечательная идея, но мне почему то кажется что эти спамеры найдут как и это обойти. Хотя мне уже сейчас хочется его поставить. Вот только можно ли его поставить на WP?
Февраль 10th, 2009 в 10:34 пп
не знаю, у кого как, но у меня только три красные цифры получаются, а не �?есть.
про�?у помочь.
спасибо.
Февраль 21st, 2009 в 10:34 дп
Ничего сложного, если станет распространённой – взломают в 2 счёта.
Апрель 17th, 2009 в 10:32 пп
Я не спорю, это не панацея.. но на своих проектах в разных модификациях использую и все ОК.
Июль 3rd, 2009 в 6:57 дп
Спасибр разработчику за реализацию идеи и деньные советы. На моём сайте спама боль�?е нет.
Респект!
Сентябрь 5th, 2009 в 6:00 пп
Выгребаю с форума каждый день по 5-6 спам сообщений. Форуму всего месяц. Начал искать ре�?ение и набрёл на ва�? сайт. Буду пробовать ва�?у капчу. Заранее спасибо за то, что изобрели такую �?туку.
Сентябрь 20th, 2009 в 8:36 пп
как установить эту капчу?
Апрель 28th, 2010 в 2:09 пп
Скрипт генерит только 3 красных цыфры, в чём проблема??
Июнь 14th, 2010 в 9:38 пп
Установить ее никаких проблем. php скрипт капчи абсолютно рабочий.. использую уже второй год – защищает по-прежнему надежно. Да и потенциал для совер�?енствования огромный.
MsMitay, для форума тоже можно использовать, хотя там зачастую хватает и других ре�?ений. Защищаю несколько клиентских и своих форумов от спама (постами и профилями) весьма успе�?но с помощью банальней�?их вещей. Самое простое – добавить видимое поле ввода капчи с нестандартным именем, а со стандартное – оставить и сделать невидимым с помощью стилей. Если стандартное заполнено – значит это спамбот.
Октябрь 21st, 2010 в 7:00 пп
Мысль конечно, но думаю не проблема. Кстати капча ниже вообще полная лажа. 3 часа и >60% обеспечена )
Январь 4th, 2011 в 1:47 дп
Здраствуйте! Извините, но у меня капча, (пример), непашет. Просто чёрний фон а цыфр нет:( Как можно исправить?