За последние 24 часа нас посетил 17681 программист и 1725 роботов. Сейчас ищут 896 программистов ...

Защищенная передача данных

Тема в разделе "PHP для новичков", создана пользователем MichaelPak, 2 мар 2012.

  1. MichaelPak

    MichaelPak Активный пользователь

    С нами с:
    5 авг 2011
    Сообщения:
    46
    Симпатии:
    0
    Допустим у меня есть страница регистрацией index.php с формой :
    Код (Text):
    1. <form action="reg.php" method="post">
    и есть страница reg.php, куда присылаются данные о регистрации и сохраняются в БД. Как сделать так, чтобы данные приходили только с index.php и посторонний человек не мог написать бота?
    Была идея написать в index.php форму так:
    Код (Text):
    1. <form action="reg.php" method="post">
    2.    ...
    3.    <?php
    4.       $_SESSION['key'] = $random_string;
    5.       echo '<input type="hidden" name="key" value="'.$random_string.'" />';
    6.     ?>
    7.    <input type="submit" value="Зарегестрироваться" />
    8. </form>
    а потом в reg.php сравнивать:
    Код (Text):
    1. <?php
    2.    if( $_SESSION['key'] != $_POST['key']) die();
    3. ?>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    случайное число (токен) в форме (хотя его можно заранее уточнить) и капча (хотя ее в теории можно проанализировать). имхо, 100% гарантии нет никогда. вешать время заполнения формы? так человек может быстро отправить после небольшого редактирования. по каждому вводу аяксить подтверждение человечности ввода? бот может делать то же самое.
     
  3. MichaelPak

    MichaelPak Активный пользователь

    С нами с:
    5 авг 2011
    Сообщения:
    46
    Симпатии:
    0
    И какое в конце концов решение?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    думаю, не выпендриваться и делать ровно как и у всех))). примеров регистрационных форм много на просторах интернета. все в той или иной степени защищены.
    в конце концов на вашу защиту найдется человек, который научит бота ее обходить. если уж очень надо будет. поверьте мне.