This text is replaced by the Flash movie.

No Comments

Моя маленькая Captcha

Интересная штука эта каптча! Я вот изначально решил пользоваться каптчей собственной разработки, думал — ну фигли там? Кому понадобится мои чахлопосещаемые сайты спамить? И каптча у меня была простой такой.


По правилам всем, конечно, проверка сесии нормальная была, а не уловка какая-нибудь с диапазоном чисел — некоторые хитрецы делают просто: выводят число строго от 2000 до 3000 скажем. И все!

Нет, у меня каптча была нормальная, правда, стандартным шрифтом и числовая, но я там даже шумы лепил и всячески старался усложнить задачу роботам.

И вот стал я замечать на Сепульке в комментариях мусор. Мусор был серьезный: со строкой хэша, с разных IP и естественно типа от разных юзеров. Надо сказать что регистрации на сепульке нет, как таковой, но в куки юзера я пишу. И стал этот мусор валиться со страшной силой — заходишь с утра на сайт — а он аж раскоряченый из-за строк по 1000 символов без пробела…

Ну, думаю, вот оно! Пришли таки крутые роботы на мой сайт. Прям лихие 90-е! Стал я думать, как каптчу усложнить… С одной стороны надо бы шрифтов подключить разных, сделать ее число-символьной и внести искажения геометрические. С другой стороны, у меня вся каптча в одном файле живет и эту простоту ломать не хочется и юзеров пугать закорючными буквами тоже не к лицу. Вобщем, я сделал как всегда просто и гениально: снял в массив по-точечно 10 цифр стандартного шрифта, а при генерации выводил цифру, выбирая из массива координаты точек. Но не просто выводил, а преобразованием координат вращал ее слегка и тригонометрией всякой кукожил. Получалось сильно отлично от стандартной цифры, но читаемо. Добавил горизонтальную перечеркивающую полоску и суперкаптча готова!

Прикол на самом деле в том, что дело то не в каптче было: я просто сессию коряво проверял, вот роботы дыркой и воспользовались:) Но благодаря этому случаю я сделал каптчу своей мечты!

Ну разве не прелесть:

Помимо своей основной функции модуль каптчи выполняет у меня роль валидатора заполнения форм. Для предварительной проверки на заполненность обязательных полей. Для этого мне достаточно у обязадельного поля в id поставить звездочку, например <input id=email* name=email type=text> и проинклюдить внутри тэга формы файл каптчи. Результат вы можете видеть например здесь, оставляя комментарий. Очень удобно и универсально работает для любых форм. Естественно, это не отменяет необходимости проверять отправленные данные, но позволяет напомнить юзеру, что он не все заполнил без перезагрузки страниц и без потери введенных данных. И всего-то — одна строчка кода! Очень удобно.

testas | 18 Августа 2008 г. 03:02 | Комментарии (4) | Вернуться в блог
Комментарии (4)

Оч. интересно!

Скинул. Вам вопросик на мыло. Спасибо!

Дмитрий_не_робот) | 15 Сентября 2008 г. 09:37

Получилось!!!

Виктор | 6 Марта 2009 г. 11:12
Еще бы код каптчи, было бы просто чудесно.
Александр | 18 Марта 2009 г. 13:09
Капча — как замок. Если уникальный (ну например секретная кнопка) — вор не войдет, а если заводской — запросто. Здесь тоже самое. Можно делать очень элементарные вещи, например, простить повторить какое-нибудь слово (прямо текстом вместо «вы не робот»?), или написать что находится на фотке (животное например). Работает безотказно, даже если слово или фотка висит одна и таже годами. Для чахлопосещаемых сайтов больше и не надо.

Я на одном портале просто спрашиваю: «Сколько колес у автомобиля». За 3 года ни одного робота, а без проверки — тонны каждый день.
zhilin | 4 Апреля 2009 г. 23:08
Алексей Ильин, Санкт-Петербург
Copyright © 2008 «Testas.ru»
email: testas@testas.ru
ICQ: 460446366
free translator
Free Translator

Client for Google Translate is a free translator which translates text in any Windows application, such as Outlook, MS Word, Internet Explorer, Firefox and so on.