$Id: tclcaptcha.ru.texinfo,v 1.5 2007/06/19 13:26:01 alex Exp $
Copyright © 2006 Alexander Gromnizki <iwerdon.at.gmail.com>.
В различных способах существующих captcha тестов меня всегда раздражало несколько вещей:
Как крайний вариант, можно предложить отправлять картинку или звук себе на мыло, а забирать их с мобильного телефона и смотреть/слушать там. На что это больше похоже: гиковский экстремизм или просто обычный идиотизм, я говорить не хочу.
Единственный выход: captcha тест может фильтровать боты задавая мягко, но настойчиво вопросы на общеизвестные темы. Например, "в какое место Черчилль прятался от лейбористов?" или "какова величина (в байтах) MTU у Ethernet?".
Такой подвид тестов не любят по причинам того, что:
Первый русский вопрос опустим и перейдем сразу ко второму. Мне пришла мысль генерировать цифры и буквы не в виде картинок, а изображая их посредством подмножества ASCII-графики. Преимущества такого несложного подхода есть в том, что броузерная проблема убирается навсегда, недостаток один, но решающий: такой captcha тест довольно легко раскодировать.
Годится ли он вам, решать не мне. Для не крупного сайта, дабы отпугнуть начинающих спамеров одного его наличия уже достаточно (как и любого другого captcha теста), но у него есть, как вы понимаете, преимущество в технической всеядности. Если его "поломали", выхода, кроме как опросных тестов, увы нет.
Как выглядит наша ASCII-графика? Вот пример фамилии Уильяма Блейка:
#### # # # ## #####
# # # # # # ## #
#### # ##### ## #####
# # # # # # ## #
#### ##### # # # ## #####
Для генерации текстового captcha теста используются только прописные латинские буквы и цифры.
Возможно масштабирование по ширине и высоте. Например, возьмем название ОС единственно верной, как КПСС, с масштабом 2 по ширине:
## ## #### ## ###### ## ##
## ## ###### ## ## ## ##
## ## ## ## ## ## ##
## ## ## ###### ## ## ##
###### ## ## ###### ## ##
Или даже с маштабом 2 по высоте и ширине:
## ## #### ## ###### ## ##
## ## #### ## ###### ## ##
## ## ###### ## ## ## ##
## ## ###### ## ## ## ##
## ## ## ## ## ## ##
## ## ## ## ## ## ##
## ## ## ###### ## ## ##
## ## ## ###### ## ## ##
###### ## ## ###### ## ##
###### ## ## ###### ## ##
Нравится? Главное чтобы нравилось посетителю вашего ресурса. После проведения тестирования на существах слабого пола, выяснилось, что те очень нехорошо разбирают последовательности вроде
### ### ### # # ##### ### ### ###
# # # # ## # # # # ## # # #
# # # # # # ##### # # # # # #
# # # # # # # # ## # # # #
## # ### ##### ### ##### ### ### ## #
И правильно распознают все символы с только 3-4 попытки. Лучшее результаты были достигнуты у лиц мужского пола 3-х профессий: художник, системный администратор и программист, но такие "саламандры судьбы, василиски счастья" нам, конечно, не аргумент.
Чтобы процесс распознавания опустить по возможности на уровни пониже, можно раскрашивать символы 2-мя разными цветами чередуя их. Вот так:
### # # # # ##### # # #### # ### # ## ## ## # # # # # # # # # # # # # # # # # # ##### # #### ##### # ## # # # # # # # # # # # # # ### # # ### ##### # # # ## # # ###
Реализацию такого captcha теста можно скачать здесь: tclcaptcha-0.1. Лицензия X11 (BSD-like). Документации, кроме исходного кода, нет :) Сам генератор написан на тикле, к нему для примера идет обкладка на PHP.
Чтобы с чего-нибудь начать, напечатайте после распаковки архива:
./captcha -h