2012-04-03 4 views
2

Является ли эта функция хорошей функцией быстрого входа с одним пользователем?PHP: Быстрая функция входа?

function auth($post, $session) 
{ 
    if(isset($post["username"]) && isset($post["password"])) 
    { 
     $session["user"] = new stdClass(); 
     $session["user"]->username = $post["username"]; 
     $session["user"]->password = $post["password"]; 
    } 

    if(isset($session["user"])) 
     if(is_object($session["user"])) 
      if($session["user"]->username == "admin" && $session["user"]->password == "test") 
       return true; 

    return false; 
} 

Он работает, но должен ли он быть улучшен?

+0

Одно из возможных улучшений: вы можете добавить объект пользователя к сеансу, только если вход был успешным. – bfavaretto

+0

Это определенно будет работать, но оно будет менее безопасным и будет иметь смысл только в среде разработки/тестирования. Я бы не поставил что-то подобное на производственном сервере. – Joe

+1

@ Джо: Почему бы вам не пойти? Каким образом он менее безопасен? (Я имею в виду, что хеширование и соль будут большим улучшением, но на самом деле это лучше, чем база данных для простой однопользовательской системы.) – Ryan

ответ

1

Используйте сеанс для отслеживания входа пользователя в систему или нет. Например, на странице входа в систему только установить имя пользователя в сеансе, если пользователь правильно аутентифицируется. Страница выхода из системы очищает его. Затем ваши другие страницы могут проверить, установлено ли имя пользователя в сеансе или нет. Нет необходимости хранить введенный пароль (не рекомендуется).

Смежные вопросы