Вопрос Какие имеются дыры в скрипте авторизации?

Тема в разделе "Веб-разработка", создана пользователем melihovgv, 14 окт 2012.

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

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Приветствую, форумчане. Написал простой скриптик авторизации. Помогите найти дыры.
    PHP:
    <?
    session_start();
    ob_start(); 
    echo
    "<form method=\"post\">";
    echo 
    " <input name=\"del\" type=\"submit\"   value=\"Выйти\"> " ;
    echo
    "</form>";        
        if(isset(
    $_POST['del'])){unset($_SESSION['auth']);}
        
        
    $f = @fopen('.htp','r') or die('Error reading data file');
            while (
    $line trim(fgets($f4096)))
            {
                if (
    strlen($line) == && $line[0] == '#') continue;
                
    $parts explode(':'$line);
                
    $users[$parts[0]] = $parts[1];
            }
        
    fclose($f);
        
        
        function 
    isLoginOk($login$password)
        {
            global 
    $users;
            return (
    array_key_exists($login$users) && $users[$login] == $password);
        } 
        
    if(
    $_SERVER["REQUEST_METHOD"]=="POST"){
        if (!
    isLoginOk($_POST['login'], $_POST['password'])){
            
    $_SESSION['error'] = 'Доступ запрещен';
            
    header("Location: index.php");
            echo 
    "Логин и пароль введены не правильно";
            exit;
             
        }else{
            if (
    $_SESSION['error'])
                unset(
    $_SESSION['error']);
            
    $_SESSION['auth'] = true;
            
    $_SESSION['login'] = $_POST['login'];    
        }
    }
     
    if(
    $_SESSION['auth']){

    }else{
        
    //header("Location: lock.php");
         
        
    echo"<form method=\"post\">";
        echo 
    "<table>";
        echo 
    "<tr><td>Логин:</td> <td><input name=\"login\" type=\"text\" size=\"20\"></td></tr>" ;
        echo 
    "<tr><td>Пароль:</td> <td><input name=\"password\" type=\"password\" size=\"20\"></td></tr>" ;
        echo 
    "<tr><td><input name=\"nick\" type=\"submit\"   value=\"Готово\"></td></tr>" ;
        echo 
    "</table>";
        echo
    "</form>";        
        exit;
    }

    ?>
  2. Dante

    Dante Супер-модератор На форуме с: 17 мар 2011 Сообщения: 5.038 Команда форума

    По-моему вам на Античат надо или на хакер.ру

    Вообще лучше конечно обратится к опытному взломщику, и за определенную сумму (обычно от 30 к) он проверит.

    Если найду контакты того,кто мне двигун копал, то в Л.С скину,но там дорого (от 50к).
  3. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    melihovgv, для чего это авторизация? Для админки или ещё какого-нибудь секретного отдела? :a1:
  4. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Ami, админка)
  5. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Лично для меня надежней использование самодельной авторизации с использованием различных проверок и мудреным шифрованием. А .htpasswd базовый способ сокрытия информации. Да и сама мысль о хранении пароля в файле уже настораживает, поэтому это одна большая дыра.
  6. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Ami, т.е. лучше mysql ?
  7. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    melihovgv, да
Статус темы:
Закрыта.