Хочу познакомить Вас с моим маленьким изобретением – многослойной капчой, которая родилась при написании скрипта доски объявлений. Я подготовил материал, который будет удобен для восприятия, кроме того есть работающий пример и комплект скриптов. Все бесплатно.

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

Я представляю капчу, для которой на сегодняшний день нет решений, позволяющих автоматизировать ее распознавание. Фишка не в использовании фумов, шрифтов и прочих искажений изображения, хотя эти методы можно с ней комбинировать. Все проще, но этот способ потребует от спамеров качественного перехода на новый уровень работы с анализируемой формой и документом, защищенных капчой.

Двухслойная капча

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

Многослойная капча

Итак, мы генерируем число AAABBB и число RRR, где:
AAA, BBB и RRR – числа в диапазоне 1..999

Из них мы делаем две картинки:
на одной изображено AAA и она будет закрывать половину второй.
на второй изображено RRRBBB и часть RRR не будет видна за AAA

Пользователь визуально воспринимает ее как одно число AAABBB.
Автомату же для ее распознавания придется анализировать весь документ, включая стили CSS, чтобы определить, какие картинки изображают код (их может быть и более двух), в какой последовательности они закрывают друг друга и какие части остаются видимыми, чтобы отбросить лишние (закрытые) символы.

Реализация капчи:

Я сделал простую реализацию этой капчи, использовав CSS, mod_rewrite и PHP. При реализации не стоит забывать о необходимости запрета кэширования картинок браузером.
Пример работающей двухслойной капчи.

Ссылки:
Скачать описание двухслойной капчи (Word)
Скачать скрипт капчи (php)

Мои проекты, защищенные этой капчой: