За последние 24 часа нас посетили 53953 программиста и 1764 робота. Сейчас ищут 935 программистов ...

Простейшая авторизация пользователей. Жду мнений :)

Тема в разделе "Прочие вопросы по PHP", создана пользователем enshtein, 10 дек 2007.

  1. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Пример простейшей процедуры авторизации, которую я использую в своих проектах... Проблем с безопасностью пока не было... Однако как и любой начинающий программист могу ошибатся в чем-то... Потому прошу вас господа скажите что по вашему мнению в этом небольшом куске кода не так? Я намерено отказался от использования Cookies (в конце коцов сейчас в каждом браузере есть поддержка запоминания вводимых паролей - пусть это будет прерогативой клиента :) ).
    PHP:
    1. if ($_SESSION['ADMIN_LOGED'] != true) {
    2.     $login = mysql_escape_string($_POST['login']);
    3.     $pass = md5(mysql_escape_string($_POST['pass']));
    4.     $result = $db->query("SELECT * FROM users
    5.                 WHERE login = '$login'
    6.                 AND pass = '$pass'");
    7.     if ($db->num_rows($result) > 0) {
    8.         $_SESSION['ADMIN_LOGED'] = true;
    9.     }
    10.     else {
    11.         $_SESSION['ADMIN_LOGED'] = false;
    12.     }
    13. }
    14. if ($_SESSION['ADMIN_LOGED'] == false) {
    15.     // Если была попытка авторизации, то сообщаем об ошибке
    16.     // выводим форму ввода логина и пароля
    17.     exit();
    18. }
    Меня интересует ваше мнение о безопасности такого вот простого решения авторизации пользователей...
     
  2. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    я проблем не вижу

    непонятно только для чего тебе следующее:
    но это не ошибка. если тебе хотца так - пусть будет так :)
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    QQQ у меня тоже когда-то существовала такая проверка. потом я задумался зачем она если я все равно беру хеш от пароля
     
  4. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    > md5(mysql_escape_string(

    надо либо в обратном порядке, либо что-то одно из них :)


    > $_SESSION['ADMIN_LOGED']

    причём тут админ?


    > $_SESSION['ADMIN_LOGED'] = true;

    почему бы не сохранить всю информацию о пользователе, раз уж мы её всё-равно получили из базы?
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    dark-demon зачем в обратном порядке? ))))
     
  6. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    а вдруг в функции md5 дырка! :)
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    dark-demon ))))))) жесть
     
  8. Mavir

    Mavir Guest

    Если автор так же добавляет пароль, то и можно не менять порядок.
    А так будут храниться не правильные хеши паролей.

    Например, пароль - atg'dfg. md5 будет браться уже от atg\'dfg
    md5("atg'dfg") <> md5("atg\'dfg")
     
  9. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Mavir а то я сам не понял )))) я у ДД спросил зачем обратный порядок ))))
     
  10. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    да это я ошибса... в оригинале все порядком! Спасибо за мнения господа :)