Хотелось бы немного поговорить о CAPTCHA: для чего она нужна, где и как ее лучше всего применять. Вообще CAPTCHA — это компьютерный тест, который был разработан для того, чтобы определить — кем является пользователь системы: человеком или компьютером. Самый простой пример реализации CAPTCHA — это изображенные символы на картинке, к которой добавляют какой-нибудь графический деффект, также если деффет слишком сложный, то пообщепринятым правилам необходимо добавить звуковое распознование CAPTCHA.
Также имеется такая реализация CAPTCHA: выбрать из графического или текстового списка конкретный пункт, либо же решить простое математическое уравнение или формулу.
В этой статье мы поговорим о том, как можно сделать свою собственную CAPTCHA на php, либо же прикрутить уже готовые. Создавать мы будем совсем простую CAPTCHA. Для этих целей нам необходимо создать случайный код, который необходимо где-то его хранить. Его можно хранить в файле, его можно хранить в БД, его можно просто хранить, создав новую сессию. Я выбрал 3-й вариант. Его также можно генерировать вместе с изображением, например так:
<img src="/captcha.php?code=code"/>
Но это совсем очевидно и поэтому обычные роботы с легкостью смогут взломать данную CAPTCHA, так как из ссылки изображения, его легко вытянуть (code). Вообще существует достаточно много автоматизированных программ по распознаванию CAPTCHA, даже есть сервисы, где ее распознают вручную (люди), поэтому Вам необходимо сделать такую, которая не позволит с легкостью распознать ее, но также не стоит забывать о посетителях Вашего сайта (блога).
Мой алгоритм такой был, я создал картинку с шумовым эффектом, придумал шрифт более не ровный и сгенерировал 5-ти значный случайный код, который и выводит его на картинку:
<?php//генерируем случайно числоsession_start();for($i=0;$i<5;$i++){$j=rand(0,9);@$cod.=$j;}$_SESSION['captcha']=$cod;header('Content-type: img/png');$hImage=imagecreatefrompng('Count.png');imagettftext($hImage, 20, 0, 8, 25,$cod,"arial.ttf",$cod);imagepng($hImage);?>
Вот такой я сделал фон нашей CAPTCHA:
Все, теперь Вам необходимо только лишь сверять информацию которую ввел пользователь. Также хочу сказать, что возможно и не стоит изобретать велосипед, так как уже существует достаточно бесплатных сервисов, где Вы можете прикрутить CAPTCHA к своему сайту (блогу). Это, например:
reCAPTCHA
KeyCaptcha
Что касается CMSWordPress, то для нее существуют отличные плагины:
SICaptchaAnti-spam — довольно простой и удобный плагин, для защиты блога от спам-комментариев. Поддерживает обновление изображения и проигрывания звукового сигнала.
yaCAPTCHA — данная CAPTCHA используется на CMSWordPress достаточно редко. Она больше используется на CMSDLE, но все равно также очень отличная защита своего сайта.
WP-reCAPTCHA — данный плагин является синтезом системы reCAPTCHA. На мой взгляд является одним из самых мощных, так как его очень трудно обойти роботом, порой даже человек не в силах с нескольких раз угадать код. Для его установки необходим API-ключ, который можно получить на официальном сайте проекта, который необходимо ввести в меню настроек плагина.
Math Comment Spam Protection — на мой взгляд, один из самых простых CAPTCHA-плагинов, который заключается о решении простого математического примера, а если быть точнее: сложении двух чисел (об этом мы также говорили выше). Очень прост для пользователей сайта.
DCaptcha — также очень простой плагин, особенно для пользователей сайта. Для того, чтобы его пройти необходимо поставить «галочку», которая извещает о том, что Вы не робот.
ImHuman — это уже более оригинальный CAPTCHA-плагин, который работает по следующему признаку: выбрать ту картинку, на которой изображен компьютер, соответсвенно пользователю надо выбрать именно эту картинку. Мне нравиться.
WP—NOTCAPTCHA — ну и наконец, на мой взгляд, самый интересный CAPTCHA-плагин, который подойдет не всем на блог. Он не на столько интересный, на сколько оригинальный. Суть его такова: необходимо картинки, с помощью бегунка, расположить вертикально. Картинки можете выбирать свои.