|
|
|
| Всем привет, очень нужна помощь. У меня есть форма, в которой выставлена защита картинкой (код ниже). Каким-то образом роботы все-таки умудряются через нее пролезать и оставлять спам :(
Код файла index.php:
<?
switch ($_GET['act']) {
case "addpost":
if ($_POST['add']=="ok") {
session_start();
if ($_POST['eq']!=$_SESSION['eq']) {
session_destroy();
exit("К сожалению, Вы неверно решили проверочный пример. Пожалуйста, повторите попытку");
}
/*
тут идет проверка данных и запрос в БД на добавление записи в таблицу
*/
}
break;
default:
//Генерация текста на картинке
$dig1=rand(1, 99);
$dig2=rand(1, 20);
$dig1_l="$dig1";
$dig2_l="$dig2";
$primer="$dig1_l+$dig2_l";
$eq=$dig1+$dig2;
session_start();
$_SESSION['primer']=$primer;
$_SESSION['eq']=$eq;
//Вывод формы
echo "
<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."?act=addpost\">
Сообщение / Message:<br>
<textarea id=\"q3\" name=\"msg\"></textarea>
<p />
<img src=\"img.php\" border=0> = <input id=\"q4\" name=\"eq\"><br>
<input id=\"MainSubmitButton\" type=\"submit\" value=\"OK\">
<input type=\"hidden\" name=\"add\" value=\"ok\">
</form>
";
}
?>
|
Код файла img.php:
<?php
session_start();
$img = imagecreate(100,40);
$black = imagecolorallocate($img,0,0,0);
$white = imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$white);
imagettftext($img,20,0,5,29,$black,'arlrdbd.ttf', $_SESSION['primer']);
$p = 0;
while ($p<400)
{
$x = mt_rand(1,100); // случайная координата пикселя шума по оси X
$y = mt_rand(1,75); // ось Y
$pixel = imagecolorat($img,$x,$y); // узнаем какой цвет используется на месте будущего пикселя шума
$point = ($pixel == $black) ? $white : $black; // если был черный, красим пиксель белым, если белый - красим черным
imagesetpixel($img,$x,$y,$point); // рисуем сам пиксель
$p++;
}
imagepng($img);
imagedestroy($img);
//header('Content-Type: image/png');
?>
|
Шрифт на всякий случай в аттаче.
Что неправильно? Или надо другого типа картинку генерить? | |
|
|
|
|
|
|
|
для: aexb
(06.06.2007 в 09:47)
| | Программа xrumer3.0 (спам по форумам) и программа AllSubmitter старших версий (размещение сайтов в каталогах) свободно преодолевает защиту картинками.
Гораздо надежнее защита логическим вопросом ("Сколько будет три плюс пять?", "Сколько дней в неделе?"). | |
|
|
|
|
|
|
|
для: Владимир55
(06.06.2007 в 09:53)
| | А как эти программы это делают ? | |
|
|
|
|
|
|
|
для: Richard Ferlow
(06.06.2007 в 09:56)
| | просто расшифровывают ваш код или пример, как там у вас и без труда его считают, советую поставить вот енто: http://captcha.ru/breakings/ за год никто ко мне не прошёл ботный ;))
Ну и собственно скачайте и установите - поможет = проверенно =)
Скачивать тута последную версию: http://captcha.ru/kcaptcha.zip | |
|
|
|
|
|
|
|
для: Proger
(06.06.2007 в 10:00)
| | Круто :))
Надо поставить на IPB как-нибудь | |
|
|
|