Отправить заявку

PHP: простая каптча обманка

На сегодняшний день существуют десятки способов защиты форм от спама. Каждый выбирает под себя нужный ему вариант. На очень многих проектах мы используем "псевдо-каптчу".

Например возьмем простую функцию создания каптчи:

function CaptchaGeneratorImage($length=3)
{
$pattern = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
for($i=0; $i<$length; $i++){
$string .= $pattern{rand(0,61)};
header("Content-type: image/png");
$im = @imagecreate(100, 50)
or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 10, 5, 5, $string, $text_color);
imagepng($im);
imagedestroy($im);
}
CaptchaGeneratorImage();

echo = '<img src="/captcha.php?rand='.time().'" alt="">';

Получим изображение с нанесенными цифрами выбранными случайным образом. А теперь при помощи CSS сверху этой картинки наложим слой с совершенно другим текстом и инпут-полем. После этого если в поле каптче будет какой-то текст - это бот, а если он еще и совпадет с нашей картинкой (т.е. бот распознаст каптчу) можно смело заносить его в бан-лист.

Конечно идеальное решение для пользователя вообще не заполнять никаких каптч. Есть много проверенных средств решаемых при помощи CSS или JS, которые могут помочь с отсеиванием ботов. И лучше пользоваться именно ими. И лучше пользоваться именно ими. В любом случае нужно устанавливать онлайн консультант на сайт для того, что бы пользователь, у которого не получается отправить сообщение с формы сайта – мог через веб-консультанта донести или получить нужную ему информацию.

Другие публикации