Многие из вас видели, что в гостевых книгах, форумах, при регистрации новых пользователей часто в формах используется защита от роботов – кривенькие буковки и циферки. Этот вид защиты называется captcha. Вот, что по этому поводу сказано в Википедии: CAPTCHA (английская аббревиатура от «Completely Automated Public Turing test to tell Computers and Humans Apart»…) – … компьютерный тест, используемый для того, чтобы определить, человек ли использует систему… CAPTCHA чаще всего используется при необходимости предотвратить использование интернет-сервисов ботами, в частности, для предотвращения автоматической регистрации, скачивания файлов, массовых рассылок и т. п. Я сам использовал эту защиту на своих сайтах. Однако, как-то мне попалась ссылка на ресурс спамеров, где приведено около 20 видов captcha, которые их программа может распознать. По идее все просто – достаточно вспомнить программы распознавания текста для сканеров. Очертание буквы А, как ее не коверкай, все равно принципиально не изменяются, иначе человек, пишущий сообщение в гостевую, тоже не сможет ее узнать. Мысль о создании чего-то такого, что человек сможет легко распознать, а робот никогда, прочно засела в голове. Первым пришел в голову пример, прочитанный когда-то давно в книге, посвященной искусственному интеллекту: как объяснить машине разницу между кошкой и собакой. Человеку достаточно одного взгляда, а попробуйте хотя бы рассказать, в чем отличия… Распознавание образов – вот в чем компьютер еще не скоро сравнится с человеком. Отсюда и возникла идея, которую сейчас я предлагаю вашему вниманию. Выбираем несколько картинок (чем больше – тем лучше), на который изображены различные объекты. Как в детских играх – мячик, цветочек, дерево, машина. Каждому изображению ставим в соответствие его название (текстовое). Теперь нужно предъявить посетителю сайта несколько картинок и рядом напечатать название одной из них с просьбой кликнуть именно по ней. В этом и есть основной принцип этой защиты. Понятно, что робот может запомнить ваши картинки (ведь их не бесконечное количество) или просто кликать в одну из них до тех пор, пока не угадает – вероятность попадания очень большая. Здесь начинаются хитрости. Во-первых, можно показывать не целую картинку, а только ее часть. Согласитесь, если вы увидите рот, нос или глаз, то вы однозначно поймете, что это лицо. А для машины – это абсолютно разные картинки. Во-вторых, помещать наши фрагменты на какой-нибудь фон, делать их полупрозрачными, возможно даже частично перекрывать их друг другом. Главное, чтобы человеку все равно оставалось понятно, куда надо кликать. И, в-третьих, можно просить кликнуть не на одну картинку, а на несколько в определенном порядке. От этого вероятность попадания роботом уменьшается на порядки. Ссылку на пример такой captcha можно увидеть в конце данной статьи. Я просил покликать всех своих родственников, включая детей. Практически ошибок не было. Более того, это выглядело как игра (что, кстати, может дополнительно привлечь посетителей на ваш сайт). Несколько слов о технической стороне реализации этой программы – мной использован PHP со стандартной графической библиотекой и совсем немножко Ajax. Если возникнут трудности с написанием такого скрипта – могу помочь. Буду рад услышать ваши мнения по поводу такого способа защиты web-форм от роботов и спама. Возможно, кто-либо знает о подобных методах защиты – напишите. Мои поиски по Интернету не увенчались успехом…
Понравилась статья? Получай обновления и будь всегда в курсе событий!