Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Подменить куку


Автор: adamant 5.1.2007, 08:09
сообственно сабж, есть правда пожелания, что можно изменить, спасёт ли это?

Код

<META http-equiv="content-type" content="text/html; charset=windows-1251">
<?

    function check()
{
        if(isset($_COOKIE['auth']))
    {
        $query_check = mysql_query("select `*` from `members_auth` where login = '".mysql_real_escape_string($_COOKIE['login'])."' and hash = '".mysql_real_escape_string($_COOKIE['hash'])."'");
        $check = mysql_fetch_object( $query_check );
            if($check -> hash != $_COOKIE['hash'])
        {
            mysql_query("DELETE FROM members_auth WHERE login = '".$_COOKIE['login']."'");
            setcookie("auth", 0, time() - 86400);
            setcookie("login", 0, time() - 86400);
            setcookie("hash", 0, time() - 86400);
            header("locatin: index.php");
            print("Вы не авторизованны, пройдите авторизацию заного.");
        }
            else
        {
            setcookie("auth", $_COOKIE['auth'], time() + 900);
            setcookie("login", $_COOKIE['login'], time() + 900);
            setcookie("hash", $_COOKIE['hash'], time() + 900);
            print 'привет, '.$_COOKIE['login'].' ( выйти )';
        }
    }
}
?>


Заранее благодарен.

извиняюсь за название.  smile 

Автор: PARROT 5.1.2007, 12:09
Модератор: Название темы должно отражать ее суть!

Автор: Wolf1994 5.1.2007, 12:41
В чём заключается смысл скрипта и зачем удалять из базы юзера, если кто-то попытался авторизоваться под его логином?

Автор: adamant 5.1.2007, 13:54
смысл таков, взял я куку захотел подменить, (авторизовался по логином "Вася" и захотел украсть логин "Петя") то поидеи скрипт не даст этого сделать, за счёт сравнения $_COOKIE['hash'] и $check -> hash (значения из базы)

Так вот мне интересно этот скрипт годится или нет =) потому что в мануале от Mal`a там как то уж очень сильно md5 сделано, а в моём случае будет генерироваться просто случайное число...

Автор: Wolf1994 5.1.2007, 14:19
Для этого достачно пароля, который может быть любым случайным числом или md5-кодом или чем угодно. Пароль не сообщается никому кроме его владельца.

PS. Если я правильно понял постановку вопроса...

Автор: Mal Hack 5.1.2007, 15:47
Цитата(adamant @  5.1.2007,  13:54 Найти цитируемый пост)
потому что в мануале от Mal`a там как то уж очень сильно md5 сделано, а в моём случае будет генерироваться просто случайное число... 

Просто число в качестве хэша это в корне не верно, поскольку число подобрать можно. Плюс, тот хэш, который генерится у меня завязан на данных о пользователе, а число таковым не будет. В этом весь смысл..

А такой манипуляции с хэшированием связаны с проблемами md5. Сборный хэш всегда надежнее одинарного..

Что касается подмены, то ознакомься с этой статьей: http://phpclub.ru/detail/article/sessions

Автор: adamant 5.1.2007, 21:30
хммм. задумался =) спасибочки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)