Защита от авторегистраций как реализовать???

  • Автор темы PHP Pro
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

PHP Pro

Гость
#1
Интересно как пишут такие штуки как защиту от автоматических регистраций???, то есть я имею ввиду как пишут такие фичи на PHP, которые предлагают ввести некоторые символы случайно сгенерированные на картинке, например, такие штуки используют в регистрационных формах.

Я так это понимаю:
1) Нужен файл php который будет формировать картинку.
2) И Сам файл где находится форма, где и отображается эта картинка со случайными цислами.


Ну картинку я делаю в файле например png.php. Листинг:
====================================================
<?
// передаем заголовок
Header("Content-Type: image/png");

// создаем дескриптор изображения и регистрируем цвета
$im = ImageCreate(150, 30);
$black = ImageColorAllocate($im, 255, 255, 230);
$color = ImageColorAllocate($im, 0, 0, 0);

// выполняем "заливку" рисунка
ImageFill($im, 0, 0, $black);

// случайное число:
$text = mt_rand (1000000000, 9999999999);

// помещаем на изображение текст
ImageString($im, 25, 30, 10, $text, $color);
imageLine ($im, 250, 25, 0, 23, $color);
imageLine ($im, 1, 0, 250, 50, $color);
imageLine ($im, 250, 15, 0, 12, $color);

ImagePng($im);
ImageDestroy($im);
?>
=========================================================
Картинка есть... дальше в файле где находится форма пусть например forma.php я включаю этот рисунок такой строкой:
<IMG SRC="png.php" WIDTH="150" HEIGHT="30" BORDER=1 bordercolor=black>

Ну все, казалось бы у меня все получилось, только вот незадача как же мне, то есть файлу формы (forma.php) определить правильно ли ввел человек эти самые случайные цисла на картинке??? т.е. задача состоит в том, чтобы каким-то образом вытянуть из файла где формируется эта картинка (png.php) это самое случайное цисло, то бишь переменную: $text а затем в файле сравнить эту переменную $text с той которую введет юзер в форму. И как это реализовать???
Благодарю всех кто поможет найти решение или предложит свой вид организации данной функции - функции предотвращающей авторегистрации.
 
P

Pete

Гость
#2
Cпособ 1:

Шифровать любым алгоритмом например MD5 полученное число (лучше все таки слово). Сохранять его в cookies. При вводе юзером числа, кодить его по тому же принципу и сравнивать с тем что лежит в кукисах.

Способ 2:

Способ второй делать тоже самое сохраняя файлы на сервере указывая число в качестве названия файла, потом проверять есть ли файл на диске соотв. данному числу. При хорошем генераторе случайных чисел проблем не будет. Только вот DoS атаку организовать можно =)

Способ 1 мне кажется самым подходящим. Я так понимаю ты перечеркиваешь цифры тремя линиями? Проблемы для системы распознавания символов не будет никакой =)
 

admin

Well-Known Member
08.08.2003
2 754
1
#3
PHP Pro
к слову на php каталогах полно таких скриптов
 
Статус
Закрыто для дальнейших ответов.