За последние 24 часа нас посетили 61999 программистов и 1677 роботов. Сейчас ищут 944 программиста ...

Авторизация

Тема в разделе "PHP для новичков", создана пользователем amen, 31 окт 2009.

  1. amen

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

    С нами с:
    18 сен 2009
    Сообщения:
    298
    Симпатии:
    0
    Адрес:
    Узбекистан
    Сделал такую страничку авторизации:

    PHP:
    1. <?php
    2. include "../config.php";
    3. //Выбираем (и выводим для наглядности)дату последнего визита
    4. $query = mysql_query("SELECT config_last_enter FROM config_table");
    5. if ($query)
    6. {
    7.  $last_enter = mysql_result($query,0,'config_last_enter');
    8. }
    9. if (isset($_POST['action']))
    10. {
    11.   $login = mysql_real_escape_string($_POST['login']);
    12.   $pass = mysql_real_escape_string($_POST['pass']);
    13.  
    14.   $query = "SELECT * FROM users WHERE login='$login' AND pass='$pass'";
    15.   $res = mysql_query($query);
    16.   if (!$res) die();
    17.   if ($row = mysql_fetch_assoc($res))
    18.   {  
    19.   $_SESSION['user_id'] = $row['id'];
    20.   $_SESSION['last_enter'] = $last_enter;
    21.   }
    22.   header("Location: [url=http://]http://[/url]".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    23. }
    24. if (isset($_REQUEST[session_name()])) session_start();
    25. if (isset ($_SESSION['user_id'])) return;
    26. else{  
    27.  
    28. ?>
    29. <html>
    30. <head><title>Авторизация</title></head>
    31. <b><center>Для администрирования Новостной Ленты Вам необходимо пройти аутентификацию</b></center>
    32. <table align="center" valign="center">
    33. <form method="POST">
    34. <tr><td><input type="text"     name="login" value="Имя"></td></tr>
    35. <tr><td><input type="password" name="pass" value="фиг"></td></tr>
    36. <tr><td><input type="submit"   value=Войти></td></tr>
    37.         <input type="hidden"   name="action">
    38. </form>
    39. </table>
    40. <?
    41. }
    42. ?>
    Теперь в админских страницах достаточно инклудить "auth.php"

    Подскажите пожалуйста нет ли дыр и уязвимостей в данной реализации?
     
  2. ATI

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

    С нами с:
    3 янв 2008
    Сообщения:
    254
    Симпатии:
    0
    Адрес:
    Москва
    Пароль хранить в хеше(md5, sha1).