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

Тема в разделе "PHP программирование", создана пользователем PHP Pro, 22 июл 2004.

Статус темы:
Закрыта.
  1. PHP Pro

    PHP Pro Гость

    Интересно как пишут такие штуки как защиту от автоматических регистраций???, то есть я имею ввиду как пишут такие фичи на 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 с той которую введет юзер в форму. И как это реализовать???
    Благодарю всех кто поможет найти решение или предложит свой вид организации данной функции - функции предотвращающей авторегистрации.
     
  2. Pete

    Pete Гость

    Cпособ 1:

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

    Способ 2:

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

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

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    PHP Pro
    к слову на php каталогах полно таких скриптов
     
Загрузка...
Похожие Темы - Защита от авторегистраций
  1. serg24
    Ответов:
    0
    Просмотров:
    1.082
  2. Спартак
    Ответов:
    23
    Просмотров:
    8.088
  3. slavon-x86
    Ответов:
    9
    Просмотров:
    4.246
  4. fear
    Ответов:
    4
    Просмотров:
    151
  5. Skip
    Ответов:
    8
    Просмотров:
    540
Статус темы:
Закрыта.

Поделиться этой страницей