Будущее CAPTCHA
Кажется, перед разработчиками начинает маячить проблема роботов, оставляющих спам в форумах или выполняющих автоматическую регистрацию (часто — для того чтобы спамить в тех форумах, где анонимно это сделать не получается).
Традиционно, разработчики либо мирятся с неизбежным злом, либо используют так называемый
Если сильно исказить картинку, пользователь может не понять (со мной такое бывало), что на ней, собственно, изображено и после первой же неудачно попытки ввода уйти — робота же это не смутит. Если, скажем, вероятность распознавания составить всего лишь 20%, ничего не мешает роботу сделать несколько попыток до успеха.
Второй недостаток… Недавнее изобретение спамеров — метод «леммингов». Спамер открывает порносайт и… предлагает всем желающим войти, в качестве «платы», ввести код, написанный на картинке. Картинка берётся с сайта «жертвы». Как только «лемминг» вводит код,
Разновидность этого
Защиту от техники леммингов, в общем случае, я предложить не берусь — разве что отлавливать подозрительную активность
Образы.

Незаслуженно редко используют в качестве
- Они предлагают пользователю ввести слово
целиком. Пользователю неудобно. Я предлагаю использоватьradio-кнопки , вероятность
угадывания роботом увеличивается, но смотри пункт 2. - Они ничего не делают в случае неправильного ответа. Единственное, что сразу приходит
в голову — сразу блокировать IP нарушителя. Делать так можно, но существует
опасность заблокировать весьdialup-пул какого-нибудь провайдера, всех пользователей
какого-нибудь NATили прокси-серверов.
Пользователь (см. иллюстрацию)
может не попасть по «зайцу»(кто-то отвлёк, мышка заела) и выбрать «дрезину», но
он не за что не кликнет в «рукомойник». Человек, в здравом уме, не спутает зайца с рукомойником.
Ошибки позиционирования для близлежащих элементов можно и нужно прощать, за остальные —
наказывать: для этого IP переходить к другому, более неприятномуCAPTHA-методу ,
заставляя вводить слово целиком. - Они не пытаются запутать робота. Базу картинок, можно слить, если спам на
данный сервер очень важен или у спамера много свободного времени,
составить hash каждой иллюстрации и занести в базу.
Несложно увеличить стоимость взлома — достаточно выводить не одну картинку, а, например,
вывести в одну картинку сразу три изображения и туда же (в картинку) писать вопросы вида:
«что изображено на картинке в центре».
Количество вариантов изображения увеличивается
до N*M*S, где N — количество изображений в базе, M — количество изображений, печатаемых
в одну иллюстрацию, S — количество вариантов фраз. Важно, кстати, не делать изображения
фиксированными по ширине — иначе их легко будет разделить. Проявите фантазию — изображения
можно чуть масштабировать, инвертировать или перечеркнуть, фразу — писать в случайном месте
и так далее. Число вариантов увеличивается настолько, что базу можно и не менять. А методы
разделения и распознавания изображения по его участку не сработают.
Figlet.
История FIGlet началась весной 1991 года. Frank Sheeran написал другу автора первой версии Ian Chai письмо, где в качестве подписи использовалась строка, написанная
С тех пор появилось несколько версий подобных программ, библиотеки на различных языках, я сам, относительно недавно, написал библиотеку Text_Figlet для PHP (скоро войдёт в PEAR). В данный момент доступно примерно 420 шрифтов для написания.
Шрифт в изображении можно уменьшить, например, до 4 пикселей и фраза на экране будет занимать вполне приемлемое пространство. Жизнь спамера осложняется не только тем, что количество шрифтов довольно велико, но и эффектом „smushing“ (горизонтальная склейка), который используется в некоторых шрифтах. Посмотрите внимательно на написанную фразу — соседние буквы в ней „склеены“.
В начале было слово…
В начале было слово, но записать его, думаю, было нечем — Богу вряд ли нужна авторучка с бумагой, а людей тогда ещё не было. Первые люди писать тоже не могли, но могли говорить. Так что голос — довольно древнее средство общение, но с его распознованием у роботов всё ещё большие проблемы.
Некоторые сервисы (LiveJournal), например, используют альтернативный
Активный контент.
Надеюсь, этот метод распространения не получит распространения — я такой контен недолюбливаю, но спам не люблю ещё больше. В браузерах есть такая вещь как плагины — наиболее распространнёными, наверное, можно считать Flash и Java — два языка программирования, на которых вполне можно написать приложение выводящее текст или цифры.
Разобраться в том, как это приложение работает, чтобы понять что оно выводит роботу не по силам. В принципе, можно было бы давать
Animated GIF.
Несколько более простая разновидность предыдущего метода не требующая отдельного плагина — Animated GIF. Если бы вы смогли разыскать
Хитрость заключается в том, что GIF позволяет создавать анимации, где каждый кадр может иметь свою локальную палитру. Предел палитры в GIFе, как мы знаем — 256 цветов. Но никто не говорил, что нельзя записать 10 кадров, в каждом из которых было бы по максимуму цветов и которые были бы все одновременно видны. В результате мы получим 2560 цветов. Неплохо для начала.
Подобная идея приходила в голову не одному только Лебедеву, конечно. Картинка — одна из иллюстраций из статьи True Color GIF, где в формате GIF используются 32796 цветов. Заливка, которую вы видите, нужна лишь для демонстрации — в „Ководстве“ Лебедева GIF, содержащий 1792 цвета отображался без заливки, сразу целиком.
Пора, наверное, уже сказать к чему я клоню, если вы ещё сами не догадались. Разбор GIF’a, скомпонованного подобным образом — задача довольно сложная. Писать можно полноцветными буквами, части которых находятся в разных кадрах, играя с их перекрытием (например, заслонять символы или их части).
Безусловно, задача решаемая — нужно только последовательно разобрать все кадры и наложить их один на другой, но для этого нужно уметь работать с animated GIF, да и правильно наложить один кадр на другой — в общем, тут есть где споткнуться спамеру.
Читайте также
