вход на сайт и выход - PullRequest
       11

вход на сайт и выход

0 голосов
/ 11 ноября 2011

У меня есть веб-сайт, использующий файлы cookie для входа в систему и выхода из системы, кажется, что она работает нормально, но я уверен, что есть некоторые проблемы безопасности, о которых я не знаю.Я надеюсь на любые комментарии или идеи, которые могут сделать это более безопасным.

Логин:

if(isset($_REQUEST['email']) && isset($_REQUEST['password'])) {
    if ($result = $usersqli->query("SELECT * FROM users WHERE email='".$usersqli->real_escape_string($_POST['email'])."' AND password='".$usersqli->real_escape_string($_POST['password'])."'")) {
        if ($result->num_rows==1){
            $row = $result->fetch_object();
            $_SESSION["uid"]=$row->id;
            setcookie('email', $usersqli->real_escape_string($_REQUEST['email']), time()+60*60*24*365,'/');
            setcookie('password', md5($_REQUEST['password']), time()+60*60*24*365,'/');
            $usersqli->query("UPDATE users SET last_login=NOW() WHERE  email='".$usersqli->real_escape_string($_POST['email'])."' AND password='".$usersqli->real_escape_string($_POST['password'])."'"); 
            header( 'Location: index.php' ) ;
        }else{
            header( 'Location: index.php?show=login&err=Invalid login credentials' ) ;
        }
    }

}

Выход:

    setcookie('email','', time() - 60000);
    setcookie('password', '', time() - 60000);
    session_destroy();
    header("Location: index.php");  

Заголовок каждой страницы:

if(!$_SESSION[uid] && $_REQUEST[show]!='logout'){
    if (isset($_COOKIE['email']) && isset($_COOKIE['password'])) {  
        if ($result = $usersqli->query("SELECT * FROM users WHERE email='".$usersqli->real_escape_string($_COOKIE['email'])."'")) {
            if ($result->num_rows==1){
                $row = $result->fetch_object();
                if(md5($usersqli->real_escape_string($row->password))==$_COOKIE['password']){
                    $_SESSION["uid"]=$row->id;          
                }
             }
         }
    }
}

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

У вас есть проблемы с фиксацией сеанса в обоих механизмах аутентификации.

Я не вижу явного session_start ().

Почему 2 отдельных куки?

ХотяХэш пароля md5 означает, что кто-то не может прослушать исходный пароль, ничто не мешает ему прослушивать хеш пароля, который также работает, чтобы дать им доступ.Выполнение этого по SSL не поможет, но установка флагов secure и http only в файлах cookie решит последнюю проблему.

0 голосов
/ 11 ноября 2011

Не храните пароль в cookie - основной безопасности нет-нет.Есть много статей о том, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...